kube-proxy Configuration (v1alpha1)
Типи ресурсів
FormatOptions
Зʼявляється в:
FormatOptions містить опції для різних форматів журналювання.
Поле | Опис |
---|---|
text [Обовʼязково]TextOptions | [Alpha] Текст містить опції для формату логування "текст". Доступно лише тоді, коли увімкнено функцію LoggingAlphaOptions. |
json [Обовʼязково]JSONOptions | [Alpha] JSON містить опції для формату логування "json". Доступно лише тоді, коли увімкнено функцію LoggingAlphaOptions. |
JSONOptions
Зʼявляється в:
JSONOptions містить опції для формату логування "json".
Поле | Опис |
---|---|
OutputRoutingOptions [Обовʼязково]OutputRoutingOptions | (Члени OutputRoutingOptions вбудовуються у цей тип.) Немає опису. |
LogFormatFactory
LogFormatFactory надає підтримку певного додаткового, не стандартного формату журналу.
LoggingConfiguration
Зʼявляється в:
LoggingConfiguration містить параметри ведення журналу.
Поле | Опис |
---|---|
format [Обовʼязково]string | Прапорець формату визначає структуру повідомлень журналу. Стандартне значення формату — |
flushFrequency [Обовʼязково]TimeOrMetaDuration | Максимальний проміжок часу між скиданнями журналу. Якщо рядок, розбирається як тривалість (тобто "1s") Якщо int, максимальна кількість наносекунд (тобто 1s = 1000000000). Ігнорується, якщо вибраний бекенд записує повідомлення журналу без буферизації. |
verbosity [Обовʼязково]VerbosityLevel | Докладність — це поріг, який визначає, які повідомлення буде записано до журналу. Стандартно встановлено нульове значення, за якого до журналу записуються лише найважливіші повідомлення. Вищі значення вмикають додаткові повідомлення. Повідомлення про помилки завжди записуються до журналу. |
vmodule [Обовʼязково]VModuleConfiguration | VModule перевизначає поріг докладності для окремих файлів. Підтримується лише для "текстового" формату журналу. |
options [Обовʼязково]FormatOptions | [Alpha] Опції містять додаткові параметри, специфічні для різних форматів журналювання. Використовуються лише параметри для вибраного формату, але всі вони перевіряються. Доступно лише тоді, коли увімкнено функцію LoggingAlphaOptions. |
LoggingOptions
LoggingOptions можна використовувати з ValidateAndApplyWithOptions для перевизначення певних стандартних налаштувань.
Поле | Опис |
---|---|
ErrorStream [Обовʼязково]io.Writer | ErrorStream можна використовувати для заміни стандартного os.Stderr. |
InfoStream [Обовʼязково]io.Writer | InfoStream можна використовувати для заміни стандартного os.Stdout. |
OutputRoutingOptions
Зʼявляється в:
OutputRoutingOptions містить опції, які підтримуються як "text", так і "json".
Поле | Опис |
---|---|
splitStream [Обовʼязково]bool | [Alpha] SplitStream перенаправляє повідомлення про помилки до stderr, а інформаційні повідомлення — до stdout, з буферизацією. Стандартно, обидва потоки записуються у stdout без буферизації. Доступно лише за умови увімкнення функції LoggingAlphaOptions. |
infoBufferSize [Обовʼязково]k8s.io/apimachinery/pkg/api/resource.QuantityValue | [Alpha] InfoBufferSize задає розмір інформаційного потоку при використанні розділених потоків. Стандартно дорівнює нулю, що вимикає буферизацію. Доступно лише за умови увімкнення функції LoggingAlphaOptions. |
TextOptions
Зʼявляється в:
TextOptions містить опції для формату журналу "text".
Поле | Опис |
---|---|
OutputRoutingOptions [Обовʼязково]OutputRoutingOptions | (Члени OutputRoutingOptions вбудовуються у цей тип.) Опис не надається |
TimeOrMetaDuration
Зʼявляється в:
TimeOrMetaDuration присутня лише для зворотної сумісності для поля flushFrequency, а для нових полів слід використовувати metav1.Duration.
Поле | Опис |
---|---|
Duration [Обовʼязково]meta/v1.Duration | Duration містить тривалість |
- [Обовʼязково]bool | SerializeAsString контролює, чи буде значення серіалізовано як рядок або ціле число |
VModuleConfiguration
(Аліас до []k8s.io/component-base/logs/api/v1.VModuleItem
)
Зʼявляється в:
VModuleConfiguration — це набір окремих імен файлів або шаблонів і відповідний поріг докладності.
VerbosityLevel
(Аліас до uint32
)
Зʼявляється в:
VerbosityLevel представляє поріг докладності у klog або logr.
ClientConnectionConfiguration
Зʼявляється в:
ClientConnectionConfiguration містить деталі для створення клієнта.
Поле | Опис |
---|---|
kubeconfig [Обовʼязкове]string | kubeconfig — шлях до файлу KubeConfig. |
acceptContentTypes [Обовʼязкове]string | acceptContentTypes визначає заголовок Accept, що надсилається клієнтами при підключенні до сервера, переважаючи стандартне значення 'application/json'. Це поле контролює всі підключення до сервера, що використовуються конкретним клієнтом. |
contentType [Обовʼязкове]string | contentType — це тип вмісту, що використовується при надсиланні даних на сервер з цього клієнта. |
qps [Обовʼязкове]float32 | qps контролює кількість запитів на секунду, дозволених для цього зʼєднання. |
burst [Обовʼязкове]int32 | burst дозволяє накопичувати додаткові запити, коли клієнт перевищує свій поріг. |
DebuggingConfiguration
Зʼявляється в:
DebuggingConfiguration містить конфігурацію для функцій, повʼязаних із налагодженням.
Поле | Опис |
---|---|
enableProfiling [Обовʼязкове]bool | enableProfiling дозволяє профілювання через веб-інтерфейс за адресою host:port/debug/pprof/ |
enableContentionProfiling [Обовʼязкове]bool | enableContentionProfiling дозволяє профілювання блокувань, якщо enableProfiling встановлено в true. |
LeaderElectionConfiguration
Зʼявляється в:
LeaderElectionConfiguration визначає конфігурацію клієнтів вибору лідера для компонентів, які можуть працювати з увімкненим вибором лідера.
Поле | Опис |
---|---|
leaderElect [Обовʼязкове]bool | leaderElect дозволяє клієнту вибору лідера отримати лідерство перед виконанням основного циклу. Увімкніть це при запуску повторюваних компонентів для високої доступності. |
leaseDuration [Обовʼязкове]meta/v1.Duration | leaseDuration — це тривалість, яку не-лідери кандидати будуть чекати після спостереження за поновленням лідерства, перш ніж спробувати отримати лідерство замісць лідера, який не був поновлений. Це фактично максимальна тривалість, протягом якої лідер може бути зупинений перед заміною іншим кандидатом. Це застосовується тільки в разі увімкнення вибору лідера. |
renewDeadline [Обовʼязкове]meta/v1.Duration | renewDeadline — це інтервал між спробами діючого майстра поновити слот лідерства перед тим, як він перестане бути лідером. Це має бути менше або дорівнювати тривалості оренди. Це застосовується тільки в разі увімкнення вибору лідера. |
retryPeriod [Обовʼязкове]meta/v1.Duration | retryPeriod — це тривалість, протягом якої клієнти повинні чекати між спробами отримання і поновлення лідерства. Це застосовується тільки в разі увімкнення вибору лідера. |
resourceLock [Обовʼязкове]string | resourceLock вказує тип обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера. |
resourceName [Обовʼязкове]string | resourceName вказує імʼя обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера. |
resourceNamespace [Обовʼязкове]string | resourceNamespace вказує простір імен обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера. |
KubeProxyConfiguration
KubeProxyConfiguration містить все необхідне для налаштування проксі-сервера Kubernetes.
Поле | Опис |
---|---|
apiVersion string | kubeproxy.config.k8s.io/v1alpha1 |
kind string | KubeProxyConfiguration |
featureGates [Обовʼязкове]map[string]bool | featureGates є зіставленням імен функцій до булевих значень, які дозволяють або забороняють альфа/експериментальні функції. |
clientConnection [Обовʼязкове]ClientConnectionConfiguration | clientConnection вказує файл kubeconfig і налаштування зʼєднання клієнта для використання проксі-сервером при спілкуванні з apiserver. |
logging [Обовʼязкове]LoggingConfiguration | logging вказує параметри ведення логу. Дивіться Logs Options для додаткової інформації. |
hostnameOverride [Обовʼязкове]string | hostnameOverride, якщо не порожній, буде використовуватися як імʼя вузла, на якому працює kube-proxy. Якщо не задано, імʼя вузла вважається таким же, як і hostname вузла. |
bindAddress [Обовʼязкове]string | bindAddress може бути використано для переозначення IP-адреси вузла, яка є основною для kube-proxy. Зверніть увагу, що імʼя є історичним артефактом, і kube-proxy насправді не привʼязує жодні сокети до цього IP. |
healthzBindAddress [Обовʼязкове]string | healthzBindAddress — це IP-адреса та порт для сервера перевірки стану, на якому він буде служити, стандартно "0.0.0.0:10256" (якщо bindAddress не встановлено або IPv4), або "[::]:10256" (якщо bindAddress є IPv6). |
metricsBindAddress [Обовʼязкове]string | metricsBindAddress — це IP-адреса та порт для сервера метрик, на якому він буде служити, стандартно "127.0.0.1:10249" (якщо bindAddress не встановлено або IPv4), або "[::1]:10249" (якщо bindAddress є IPv6). (Встановіть на "0.0.0.0:10249" / "[::]:10249", щоб привʼязатися до всіх інтерфейсів.) |
bindAddressHardFail [Обовʼязкове]bool | bindAddressHardFail, якщо true, вказує kube-proxy вважати помилку привʼязки до порту фатальною і вийти |
enableProfiling [Обовʼязкове]bool | enableProfiling дозволяє профілювання через веб-інтерфейс на обробнику /debug/pprof. Обробники профілювання будуть оброблені сервером метрик. |
showHiddenMetricsForVersion [Обовʼязкове]string | showHiddenMetricsForVersion — це версія, для якої ви хочете показати приховані метрики. |
mode [Обовʼязкове]ProxyMode | mode вказує, який режим проксі використовувати. |
iptables [Обовʼязкове]KubeProxyIPTablesConfiguration | iptables містить параметри конфігурації, що стосуються iptables. |
ipvs [Обовʼязкове]KubeProxyIPVSConfiguration | ipvs містить параметри конфігурації, що стосуються ipvs. |
nftables [Обовʼязкове]KubeProxyNFTablesConfiguration | nftables містить параметри конфігурації, що стосуються nftables. |
winkernel [Обовʼязкове]KubeProxyWinkernelConfiguration | winkernel містить параметри конфігурації, що стосуються winkernel. |
detectLocalMode [Обовʼязкове]LocalMode | detectLocalMode визначає режим, який використовується для виявлення локального трафіку, стандартно — ClusterCIDR |
detectLocal [Обовʼязкове]DetectLocalConfiguration | detectLocal містить додаткові параметри конфігурації, що стосуються DetectLocalMode. |
clusterCIDR [Обовʼязкове]string | clusterCIDR — це діапазон CIDR для Podʼів у кластері. (Для кластерів з подвійними стеками це може бути пара діапазонів CIDR, розділених комою). Коли DetectLocalMode встановлено в ClusterCIDR, kube-proxy буде вважати трафік локальним, якщо його вихідний IP знаходиться в цьому діапазоні. (Інакше не використовується.) |
nodePortAddresses [Обовʼязкове][]string | nodePortAddresses — це список діапазонів CIDR, які містять допустимі IP-адреси вузлів, або, як варіант, єдиний рядок 'primary'. Якщо задано список CIDR, зʼєднання з сервісами NodePort будуть прийматися лише на IP-адресах вузлів в одному з вказаних діапазонів. Якщо встановлено значення 'primary', сервіси NodePort будуть прийматися лише на основну IPv4 та/або IPv6 адресу вузла згідно з обʼєктом Node. Якщо не встановлено, зʼєднання NodePort будуть прийматися на всіх локальних IP. |
oomScoreAdj [Обовʼязкове]int32 | oomScoreAdj — це значення oom-score-adj для процесу kube-proxy. Значення повинні бути в межах [-1000, 1000] |
conntrack [Обовʼязкове]KubeProxyConntrackConfiguration | conntrack містить параметри конфігурації, що стосуються conntrack. |
configSyncPeriod [Обовʼязкове]meta/v1.Duration | configSyncPeriod — це інтервал часу, через який конфігурація з apiserver оновлюється. Має бути більше 0. |
portRange [Обовʼязкове]string | portRange раніше використовувався для конфігурації проксі користувача, але тепер не використовується. |
windowsRunAsService [Обовʼязкове]bool | windowsRunAsService, якщо значення true, вмикає інтеграцію API диспетчера керування сервісами Windows. |
DetectLocalConfiguration
Зʼявляється у:
DetectLocalConfiguration містить необовʼязкові налаштування, що стосуються параметра DetectLocalMode
Поле | Опис |
---|---|
bridgeInterface [Обовʼязкове]string | bridgeInterface — це імʼя інтерфейсу моста (bridge). Коли DetectLocalMode встановлено в LocalModeBridgeInterface, kube-proxy буде вважати трафік локальним, якщо він походить з цього моста. |
interfaceNamePrefix [Обовʼязкове]string | interfaceNamePrefix — це префікс імені інтерфейсу. Коли DetectLocalMode встановлено в LocalModeInterfaceNamePrefix, kube-proxy буде вважати трафік локальним, якщо він походить з будь-якого інтерфейсу, чиє імʼя починається з цього префіксу. |
KubeProxyConntrackConfiguration
Зʼявляється у:
KubeProxyConntrackConfiguration містить налаштування conntrack для Kubernetes proxy server.
Поле | Опис |
---|---|
maxPerCore [Обовʼязкове]int32 | maxPerCore — максимальна кількість NAT зʼєднань, які слід відстежувати на однt процесорнt ядро (0 для того, щоб залишити обмеження без змін і проігнорувати min). |
min [Обовʼязкове]int32 | min — мінімальне значення записів connect-tracking, які слід виділити, незалежно від maxPerCore (встановіть maxPerCore=0, щоб залишити обмеження без змін). |
tcpEstablishedTimeout [Обовʼязкове]meta/v1.Duration | tcpEstablishedTimeout — як довго неактивне TCP зʼєднання буде зберігатися (наприклад, '2s'). Має бути більше 0 для встановлення. |
tcpCloseWaitTimeout [Обовʼязкове]meta/v1.Duration | tcpCloseWaitTimeout — як довго неактивний запис conntrack у стані CLOSE_WAIT залишиться в таблиці conntrack (наприклад, '60s'). Має бути більше 0 для встановлення. |
tcpBeLiberal [Обовʼязкове]bool | tcpBeLiberal, якщо true, kube-proxy налаштує conntrack для роботи в ліберальному режимі для TCP зʼєднань, і пакети з послідовними номерами за межами вікна не будуть позначені як INVALID. |
udpTimeout [Обовʼязкове]meta/v1.Duration | udpTimeout — як довго неактивний запис conntrack для UDP у стані UNREPLIED залишиться в таблиці conntrack (наприклад, '30s'). Має бути більше 0 для встановлення. |
udpStreamTimeout [Обовʼязкове]meta/v1.Duration | udpStreamTimeout — як довго неактивний запис conntrack для UDP у стані ASSURED залишиться в таблиці conntrack (наприклад, '300s'). Має бути більше 0 для встановлення. |
KubeProxyIPTablesConfiguration
Зʼявляється у:
KubeProxyIPTablesConfiguration містить налаштування, повʼязані з iptables, для Kubernetes proxy server.
Поле | Опис |
---|---|
masqueradeBit [Обовʼязкове]int32 | masqueradeBit — біт iptables fwmark простору, який слід використовувати для SNAT, якщо використовується режим iptables або ipvs. Значення повинні бути в межах [0, 31]. |
masqueradeAll [Обовʼязкове]bool | masqueradeAll вказує kube-proxy виконувати SNAT для всього трафіку, надісланого на IP-адреси сервісів кластера, при використанні режиму iptables або ipvs. Це може бути необхідно для деяких плагінів CNI. |
localhostNodePorts [Обовʼязкове]bool | localhostNodePorts, якщо false, вказує kube-proxy вимкнути застарілу поведінку дозволу доступу до сервісів NodePort через localhost. (Застосовується лише для режиму iptables та IPv4; localhost NodePorts ніколи не дозволяються з іншими режимами проксі або з IPv6.) |
syncPeriod [Обовʼязкове]meta/v1.Duration | syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0. |
minSyncPeriod [Обовʼязкове]meta/v1.Duration | minSyncPeriod — мінімальний період між повторними синхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації iptables. |
KubeProxyIPVSConfiguration
Зʼявляється у:
KubeProxyIPVSConfiguration містить деталі конфігурації, що стосуються IPVS для Kubernetes proxy server.
Поле | Опис |
---|---|
syncPeriod [Обовʼязкове]meta/v1.Duration | syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0. |
minSyncPeriod [Обовʼязкове]meta/v1.Duration | minSyncPeriod — мінімальний період між повторними синхронізаціями правил IPVS (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації IPVS. |
scheduler [Обовʼязкове]string | scheduler — IPVS планувальник, який слід використовувати |
excludeCIDRs [Обовʼязкове][]string | excludeCIDRs — список CIDR, які IPVS proxier не повинен торкатися при очищенні IPVS сервісів. |
strictARP [Обовʼязкове]bool | strictARP налаштовує arp_ignore та arp_announce, щоб уникнути відповіді на ARP запити з інтерфейсу kube-ipvs0 |
tcpTimeout [Обовʼязкове]meta/v1.Duration | tcpTimeout — значення тайм-ауту для неактивних IPVS TCP сесій. Стандартне значення — 0, що зберігає поточне значення тайм-ауту в системі. |
tcpFinTimeout [Обовʼязкове]meta/v1.Duration | tcpFinTimeout — значення тайм-ауту для IPVS TCP сесій після отримання FIN. Стандартне значення — 0, що зберігає поточне значення тайм-ауту в системі. |
udpTimeout [Обовʼязкове]meta/v1.Duration | udpTimeout — значення тайм-ауту для IPVS UDP пакетів. Стандартне значення — 0, що зберігає поточне значення тайм-ауту в системі. |
KubeProxyNFTablesConfiguration
Зʼявляється у:
KubeProxyNFTablesConfiguration містить деталі конфігурації, що стосуються nftables для Kubernetes proxy server.
Поле | Опис |
---|---|
masqueradeBit [Обовʼязкове]int32 | masqueradeBit — це біт простору iptables fwmark, який слід використовувати для SNAT при використанні режиму nftables. Значення повинні бути в межах [0, 31]. |
masqueradeAll [Обовʼязкове]bool | masqueradeAll вказує kube-proxy, щоб SNAT весь трафік, що надходить на IP-адреси кластерів Service, при використанні режиму nftables. Це може бути необхідним для деяких CNI втулків. |
syncPeriod [Обовʼязкове]meta/v1.Duration | syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0. |
minSyncPeriod [Обовʼязкове]meta/v1.Duration | minSyncPeriod — мінімальний період між повторними синхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації iptables. |
KubeProxyWinkernelConfiguration
Зʼявляється у:
KubeProxyWinkernelConfiguration містить налаштування Windows/HNS для Kubernetes proxy server.
Поле | Опис |
---|---|
networkName [Обовʼязкове]string | networkName — це імʼя мережі, яку kube-proxy використовуватиме для створення точок доступу і політик. |
sourceVip [Обовʼязкове]string | sourceVip — це IP-адреса джерела VIP точки доступу, яка використовується для NAT при балансуванні навантаження. |
enableDSR [Обовʼязкове]bool | enableDSR вказує kube-proxy, чи слід створювати HNS політики з DSR. |
rootHnsEndpointName [Обовʼязкове]string | rootHnsEndpointName — це імʼя hnsendpoint, яке прикріплене до l2bridge для кореневого простору мережі. |
forwardHealthCheckVip [Обовʼязкове]bool | forwardHealthCheckVip пересилає VIP сервісу для порту перевірки справності у Windows. |
LocalMode
(Аліас для string
)
Зʼявляється у:
LocalMode представляє режими для визначення локального трафіку з вузла.
ProxyMode
(Аліас для string
)
Зʼявляється у:
ProxyMode представляє режими, що використовуються сервером проксі Kubernetes.
На даний момент доступні два режими проксі на платформах Linux: 'iptables' та 'ipvs'. Один режим проксі доступний на платформах Windows: 'kernelspace'.
Якщо режим проксі не вказано, буде використано найкращий доступний режим проксі (на даний момент це iptables
в Linux і kernelspace
у Windows). Якщо вибраний режим проксі не може бути використаний (через відсутність підтримки в ядрі, відсутність компонентів користувацького простору тощо), kube-proxy вийде з помилкою.