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

Прапорець формату визначає структуру повідомлень журналу. Стандартне значення формату — text.

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 вийде з помилкою.

Змінено December 17, 2024 at 11:53 AM PST: Sync upstream after v1.32 release (d7b08bbf8e)