IngressNginxController
Scope: Cluster
- specобъект
Обязательный параметр
- acceptRequestsFromмассив строк
Список CIDR, которым разрешено подключаться к контроллеру.
Независимо от inlet всегда проверяется непосредственный адрес (в логах содержится в поле
original_address
), с которого производится подключение, а не “адрес клиента”, который может передаваться в некоторых inlet через заголовки или с использованиемproxy protocol
.Параметр реализован при помощи map module и если адрес, с которого непосредственно производится подключение, не разрешен – NGINX закрывает соединение (используя return 444).
По умолчанию: к контроллеру можно подключаться с любых адресов.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- additionalHeadersобъект
Дополнительные header’ы, которые будут добавлены к каждому запросу. Указываются в формате
ключ: значение(строка)
. - additionalLogFieldsобъект
Дополнительные поля, которые будут добавлены в логи nginx. Указываются в формате
ключ: значение(строка)
. - chaosMonkeyбулевый
Инструмент, позволяющий систематически вызывать случайные прерывания работы Pod’ов контроллера.
Предназначен для проверки ingress контроллера на реальную работу отказоустойчивости.
По умолчанию:
false
- configобъект
Секция настроек Ingress controller, в которую в формате
ключ: значение(строка)
можно записать любые возможные опции.Внимание! Ошибка в указании опций может привести к отказу в работе Ingress controller’а.
Внимание! Не рекомендуется использовать данную опцию, т.к. не гарантируется обратная совместимость или работоспособность Ingress controller.
- controllerVersionстрока
Версия Ingress NGINX-контроллера.
По умолчанию: версия из настроек модуля.
Допустимые значения:
0.25
,0.26
,0.33
,0.46
,0.48
,0.49
,1.1
- customErrorsобъект
Секция с настройкой кастомизации HTTP-ошибок.
Если секция определена, то все параметры в ней являются обязательными, изменение любого параметра приводит к перезапуску всех Ingress NGINX контроллеров.
- codesмассив строк
Обязательный параметр
Список кодов ответа (массив), при которых запрос будет перенаправляться на custom default backend.
Шаблон:
^[1-5][0-9][0-9]$
- namespaceстрока
Обязательный параметр
Имя Namespace, в котором будет находиться сервис, используемый, как custom default backend.
Пример:
namespace: default
- serviceNameстрока
Обязательный параметр
Имя сервиса, который будет использоваться, как custom default backend.
Пример:
serviceName: custom-errors-backend-service
- codesмассив строк
- defaultSSLCertificateобъект
Этот сертификат используется, в случаях обращений на
catch-all
сервер (запросы, для которых на найден подходящщий Ingress) и для Ingress–ресурсов, в которых не заданsecretName
в секцииtls:
.По–умолчанию будет использоваться самоподписанный сертификат.
- secretRefобъект
Ссылка на Secret для передачи Ingress Controller.
- nameстрока
Имя секрета, содержащего SSL–сертификат.
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- namespaceстрока
Имя namespace, в котором находится секрет с SSL—сертификатом.
По умолчанию:
"d8-ingress-nginx"
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- nameстрока
- secretRefобъект
- disableHTTP2булевый
Выключить ли HTTP/2.
По умолчанию:
false
- enableIstioSidecarбулевый
Добавить к Pod’ам контроллера аннотации для автоматического инжекта istio-сайдкаров. При включении этого параметра, к подам ingress-контроллера добавляются аннотации
sidecar.istio.io/inject: "true"
иtraffic.sidecar.istio.io/includeOutboundIPRanges: "<Service CIDR>"
. При создании таких подов, к ним автоматически будут добавлены сайдкары Istio при помощи mutating webhook. После этого, весь трафик в сторону Service CIDR будет перехватываться сайдкаром.Чтобы воспользоваться этой функцией, необходимо доработать прикладные Ingress-ресурсы, добавив аннотации:
nginx.ingress.kubernetes.io/service-upstream: "true"
— с этой аннотацией ingress-контроллер будет отправлять запросы на ClusterIP сервиса (из диапазона Service CIDR) вместо того, чтобы слать их напрямую в поды приложения. Сайдкар istio-proxy перехватывает трафик только в сторону диапазона ServiceCIDR, остальные запросы отправляются напрямую.nginx.ingress.kubernetes.io/upstream-vhost: myservice.myns.svc
— с данной аннотацией сайдкар сможет идентифицировать прикладной сервис, для которого предназначен запрос.
- geoIP2объект
Опции для включения GeoIP2 (работают только для версии контроллера
"0.33"
и выше).- maxmindEditionIDsмассив строк
Список ревизий баз данных, которые будут скачаны при старте.
По умолчанию:
["GeoLite2-City","GeoLite2-ASN"]
Допустимые значения элемента массива:
GeoIP2-Anonymous-IP
,GeoIP2-Country
,GeoIP2-City
,GeoIP2-Connection-Type
,GeoIP2-Domain
,GeoIP2-ISP
,GeoIP2-ASN
,GeoLite2-ASN
,GeoLite2-Country
,GeoLite2-City
- maxmindLicenseKeyстрока
Лицензионный ключ для скачивания базы данных GeoIP2.
Указание ключа в конфигурации включает скачивание базы GeoIP2 при каждом старте контроллера. Подробнее о получении ключа.
- maxmindEditionIDsмассив строк
- hostPortобъект
Секция настроек для inlet
HostPort
.- behindL7Proxyбулевый
Включает обработку и передачу
X-Forwarded-*
заголовков.Внимание! При использовании этой опции необходимо быть увереным, что запросы к Ingress направляются только от доверенных источников. Одним из способов настройки ограничения может служить опция
acceptRequestsFrom
. - httpPortцелочисленный
Порт для небезопасного подключения по HTTP.
Если параметр не указан – возможность подключения по HTTP отсутствует.
Обязательный параметр, если не указан
httpsPort
.Пример:
httpPort: 80
- httpsPortцелочисленный
Порт для безопасного подключения по HTTPS.
Если параметр не указан – возможность подключения по HTTPS отсутствует.
Обязательный параметр, если не указан
httpPort
.Пример:
httpsPort: 443
- realIPHeaderстрока
Заголовок, из которого будет получен настоящий IP-адрес клиента.
Работает только при включении
behindL7Proxy
.По умолчанию:
"X-Forwarded-For"
Пример:
realIPHeader: CF-Connecting-IP
- behindL7Proxyбулевый
- hostPortWithProxyProtocolобъект
Секция настроек для inlet
HostPortWithProxyProtocol
.- httpPortцелочисленный
Порт для небезопасного подключения по HTTP.
Если параметр не указан – возможность подключения по HTTP отсутствует.
Обязательный параметр, если не указан
httpsPort
.Пример:
httpPort: 80
- httpsPortцелочисленный
Порт для безопасного подключения по HTTPS.
Если параметр не указан – возможность подключения по HTTPS отсутствует.
Обязательный параметр, если не указан
httpPort
.Пример:
httpsPort: 443
- httpPortцелочисленный
- hstsбулевый
Включен ли
hsts
(подробнее…).По умолчанию:
false
- hstsOptionsобъект
Параметры HTTP Strict Transport Security.
- includeSubDomainsбулевый
Применять ли настройки
hsts
ко всем поддоменам сайта.По умолчанию:
false
- maxAgeстрока
Время в секундах, которое браузер должен помнить, что сайт доступен только с помощью HTTPS.
По умолчанию:
"31536000"
Шаблон:
^[1-9][0-9]*$
Пример:
maxAge: '31536000'
- preloadбулевый
Добавлять ли сайт в список предзагрузки.
Эти списки используются современными браузерами и разрешают подключение к сайту только по HTTPS.
По умолчанию:
false
- includeSubDomainsбулевый
- ingressClassстрока
Обязательный параметр
Имя Ingress-класса для обслуживания Ingress NGINX controller.
Позволяет создать несколько контроллеров для обслуживания одного Ingress-класса.
Важно! Если указать значение “nginx”, то дополнительно будут обрабатываться Ingress-ресурсы без аннотации
kubernetes.io/ingress.class
или поляspec.ingressClassName
.Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Пример:
ingressClass: nginx
- inletстрока
Обязательный параметр
Способ поступления трафика из внешнего мира:
LoadBalancer
— устанавливается Ingress controller и заказывается сервис с типомLoadBalancer
.LoadBalancerWithProxyProtocol
— устанавливается Ingress controller и заказывается сервис с типомLoadBalancer
. Ingress controller использует proxy-protocol для получения настоящего IP-адреса клиента.HostPort
— устанавливается Ingress controller, который доступен на портах узлов черезhostPort
.-
HostPortWithProxyProtocol
— устанавливается Ingress controller, который доступен на портах узлов черезhostPort
и использует proxy-protocol для получения настоящего IP-адреса клиента.Внимание! При использовании этого inlet вы должны быть уверены, что запросы к Ingress направляются только от доверенных источников. Одним из способов настройки ограничения может служить опция
acceptRequestsFrom
. -
HostWithFailover
— устанавливаются два Ingress controller’а - основной и резервный. Основной контроллер запускается в hostNetwork. Если Pod’ы основного контроллера недоступны, трафик уходит в резервный контроллер.Внимание! На одном хосте может быть только один controller с данным типом inlet’а.
Внимание! Необходимо, чтобы на узле были свободные порты: 80, 81, 443, 444, 10354, 10355.
Допустимые значения:
LoadBalancer
,LoadBalancerWithProxyProtocol
,HostPort
,HostPortWithProxyProtocol
,HostWithFailover
- legacySSLбулевый
Включены ли старые версии TLS. Также опция разрешает legacy cipher suites для поддержки старых библиотек и программ: OWASP Cipher String ‘C’ . Подробнее здесь.
По умолчанию: включён только TLSv1.2 и самые новые cipher suites.
- loadBalancerобъект
Необязательный параметр.
Секция настроек для inlet’а
LoadBalancer
.- annotationsобъект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! Модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа load balancer’а применяются только при создании сервиса, то для обновления подобных параметров необходимо будет пересоздать
IngressNginxController
(или создать новый, затем удалив старый). - behindL7Proxyбулевый
Включает обработку и передачу
X-Forwarded-*
заголовков.Внимание! При использовании этой опции вы должны быть уверены, что запросы к Ingress направляются только от доверенных источников.
- realIPHeaderстрока
Заголовок, из которого будет получен настоящий IP-адрес клиента.
Работает только при включении
behindL7Proxy
.По умолчанию:
"X-Forwarded-For"
Пример:
realIPHeader: CF-Connecting-IP
- sourceRangesмассив строк
Список CIDR, которым разрешен доступ на балансировщик.
Облачный провайдер может не поддерживать данную опцию и игнорировать её.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- annotationsобъект
- loadBalancerWithProxyProtocolобъект
Необязательный параметр.
Секция настроек для inlet
LoadBalancerWithProxyProtocol
.- annotationsобъект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа load balancer применяются только при создании сервиса, то для обновления подобных параметров необходимо будет пересоздать
IngressNginxController
(или создать новый, затем удалив старый). - sourceRangesмассив строк
Список CIDR, которым разрешен доступ на балансировщик.
Облачный провайдер может не поддерживать данную опцию и игнорировать её.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- annotationsобъект
- maxReplicasцелочисленный
Максимально количество реплик
LoadBalancer
иLoadBalancerWithProxyProtocol
для HPA.По умолчанию:
1
Допустимые значения:
1 <= X
- minReplicasцелочисленный
Минимальное количество реплик
LoadBalancer
иLoadBalancerWithProxyProtocol
для HPA.По умолчанию:
1
Допустимые значения:
1 <= X
- nodeSelectorобъект
Как в
spec.nodeSelector
у Pod’ов.Если ничего не указано или указано
false
— будет использоваться автоматика.Формат: стандартный список
nodeSelector
. Pod’ы инстанса унаследуют это поле как есть. - resourcesRequestsобъект
Настройки максимальных значений CPU и memory, которые может запросить Pod при выборе узла (если VPA выключен, максимальные значения становятся желаемыми).
- modeстрока
Обязательный параметр
Режим управления реквестами ресурсов.
По умолчанию:
"VPA"
Допустимые значения:
VPA
,Static
- staticобъект
Настройки статического режима управления.
- cpuстрока
Значение для запроса CPU.
По умолчанию:
"350m"
- memoryстрока
Значение для запроса memory.
По умолчанию:
"500Mi"
- cpuстрока
- vpaобъект
Настройки VPA режима управления.
- cpuобъект
Настройки для CPU.
- maxстрока
Максимальное значение, которое может выставить VPA для запроса cpu.
По умолчанию:
"50m"
- minстрока
Минимальное значение, которое может выставить VPA для запроса cpu.
По умолчанию:
"10m"
- maxстрока
- memoryобъект
Значение для запроса memory.
- maxстрока
Максимальное значение, которое может выставить VPA для запроса memory.
По умолчанию:
"200Mi"
- minстрока
Минимальное значение, которое может выставить VPA для запроса memory.
По умолчанию:
"50Mi"
- maxстрока
- modeстрока
Режим работы VPA.
По умолчанию:
"Initial"
Допустимые значения:
Initial
,Auto
- cpuобъект
- modeстрока
- tolerationsмассив объектов
Как в
spec.tolerations
у Pod’ов.Если ничего не указано или указано
false
— будет использоваться автоматика.Формат: стандартный список toleration. Pod’ы инстанса унаследуют это поле как есть.
- effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- keyстрока
- operatorстрока
По умолчанию:
"Equal"
Допустимые значения:
Exists
,Equal
- tolerationSecondsцелочисленный
- valueстрока
- effectстрока
- underscoresInHeadersбулевый
По умолчанию:
false
- validationEnabledбулевый
Включить валидацию Ingress-правил.
Внимание!: Данная функция не работает для контроллеров версии <0.33.
По умолчанию:
true
- waitLoadBalancerOnTerminatingцелочисленный
Количество секунд до того, как /healthz начнет возвращать код 500, когда Pod перейдет в статус Terminating.
- acceptRequestsFromмассив строк
- specобъект
Обязательный параметр
- acceptRequestsFromмассив строк
Список CIDR, которым разрешено подключаться к контроллеру.
Независимо от inlet всегда проверяется непосредственный адрес (в логах содержится в поле
original_address
), с которого производится подключение, а не “адрес клиента”, который может передаваться в некоторых inlet через заголовки или с использованиемproxy protocol
.Параметр реализован при помощи map module и если адрес, с которого непосредственно производится подключение, не разрешен – NGINX закрывает соединение (используя return 444).
По умолчанию: к контроллеру можно подключаться с любых адресов.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- additionalHeadersобъект
Дополнительные header’ы, которые будут добавлены к каждому запросу. Указываются в формате
ключ: значение(строка)
. - additionalLogFieldsобъект
Дополнительные поля, которые будут добавлены в логи nginx. Указываются в формате
ключ: значение(строка)
. - chaosMonkeyбулевый
Инструмент, позволяющий систематически вызывать случайные прерывания работы Pod’ов контроллера.
Предназначен для проверки ingress контроллера на реальную работу отказоустойчивости.
По умолчанию:
false
- configобъект
Секция настроек Ingress controller, в которую в формате
ключ: значение(строка)
можно записать любые возможные опции.Внимание! Ошибка в указании опций может привести к отказу в работе Ingress controller’а.
Внимание! Не рекомендуется использовать данную опцию, т.к. не гарантируется обратная совместимость или работоспособность Ingress controller.
- controllerVersionстрока
Версия Ingress NGINX-контроллера.
По умолчанию: версия из настроек модуля.
Допустимые значения:
0.25
,0.26
,0.33
,0.46
,0.48
,0.49
,1.1
- customErrorsобъект
Секция с настройкой кастомизации HTTP-ошибок.
Если секция определена, то все параметры в ней являются обязательными, изменение любого параметра приводит к перезапуску всех Ingress NGINX контроллеров.
- codesмассив строк
Обязательный параметр
Список кодов ответа (массив), при которых запрос будет перенаправляться на custom default backend.
Шаблон:
^[1-5][0-9][0-9]$
- namespaceстрока
Обязательный параметр
Имя Namespace, в котором будет находиться сервис, используемый, как custom default backend.
Пример:
namespace: default
- serviceNameстрока
Обязательный параметр
Имя сервиса, который будет использоваться, как custom default backend.
Пример:
serviceName: custom-errors-backend-service
- codesмассив строк
- defaultSSLCertificateобъект
Этот сертификат используется, в случаях обращений на
catch-all
сервер (запросы, для которых на найден подходящщий Ingress) и для Ingress–ресурсов, в которых не заданsecretName
в секцииtls:
.По–умолчанию будет использоваться самоподписанный сертификат.
- secretRefобъект
Ссылка на Secret для передачи Ingress Controller.
- nameстрока
Имя секрета, содержащего SSL–сертификат.
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- namespaceстрока
Имя namespace, в котором находится секрет с SSL—сертификатом.
По умолчанию:
"d8-ingress-nginx"
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- nameстрока
- secretRefобъект
- disableHTTP2булевый
Выключить ли HTTP/2.
По умолчанию:
false
- enableIstioSidecarбулевый
Добавить к Pod’ам контроллера аннотации для автоматического инжекта istio-сайдкаров. При включении этого параметра, к подам ingress-контроллера добавляются аннотации
sidecar.istio.io/inject: "true"
иtraffic.sidecar.istio.io/includeOutboundIPRanges: "<Service CIDR>"
. При создании таких подов, к ним автоматически будут добавлены сайдкары Istio при помощи mutating webhook. После этого, весь трафик в сторону Service CIDR будет перехватываться сайдкаром.Чтобы воспользоваться этой функцией, необходимо доработать прикладные Ingress-ресурсы, добавив аннотации:
nginx.ingress.kubernetes.io/service-upstream: "true"
— с этой аннотацией ingress-контроллер будет отправлять запросы на ClusterIP сервиса (из диапазона Service CIDR) вместо того, чтобы слать их напрямую в поды приложения. Сайдкар istio-proxy перехватывает трафик только в сторону диапазона ServiceCIDR, остальные запросы отправляются напрямую.nginx.ingress.kubernetes.io/upstream-vhost: myservice.myns.svc
— с данной аннотацией сайдкар сможет идентифицировать прикладной сервис, для которого предназначен запрос.
- geoIP2объект
Опции для включения GeoIP2 (работают только для версии контроллера
"0.33"
и выше).- maxmindEditionIDsмассив строк
Список ревизий баз данных, которые будут скачаны при старте.
По умолчанию:
["GeoLite2-City","GeoLite2-ASN"]
Допустимые значения элемента массива:
GeoIP2-Anonymous-IP
,GeoIP2-Country
,GeoIP2-City
,GeoIP2-Connection-Type
,GeoIP2-Domain
,GeoIP2-ISP
,GeoIP2-ASN
,GeoLite2-ASN
,GeoLite2-Country
,GeoLite2-City
- maxmindLicenseKeyстрока
Лицензионный ключ для скачивания базы данных GeoIP2.
Указание ключа в конфигурации включает скачивание базы GeoIP2 при каждом старте контроллера. Подробнее о получении ключа.
- maxmindEditionIDsмассив строк
- hostPortобъект
Секция настроек для inlet
HostPort
.- behindL7Proxyбулевый
Включает обработку и передачу
X-Forwarded-*
заголовков.Внимание! При использовании этой опции необходимо быть увереным, что запросы к Ingress направляются только от доверенных источников. Одним из способов настройки ограничения может служить опция
acceptRequestsFrom
. - httpPortцелочисленный
Порт для небезопасного подключения по HTTP.
Если параметр не указан – возможность подключения по HTTP отсутствует.
Обязательный параметр, если не указан
httpsPort
.Пример:
httpPort: 80
- httpsPortцелочисленный
Порт для безопасного подключения по HTTPS.
Если параметр не указан – возможность подключения по HTTPS отсутствует.
Обязательный параметр, если не указан
httpPort
.Пример:
httpsPort: 443
- realIPHeaderстрока
Заголовок, из которого будет получен настоящий IP-адрес клиента.
Работает только при включении
behindL7Proxy
.По умолчанию:
"X-Forwarded-For"
Пример:
realIPHeader: CF-Connecting-IP
- behindL7Proxyбулевый
- hostPortWithProxyProtocolобъект
Секция настроек для inlet
HostPortWithProxyProtocol
.- httpPortцелочисленный
Порт для небезопасного подключения по HTTP.
Если параметр не указан – возможность подключения по HTTP отсутствует.
Обязательный параметр, если не указан
httpsPort
.Пример:
httpPort: 80
- httpsPortцелочисленный
Порт для безопасного подключения по HTTPS.
Если параметр не указан – возможность подключения по HTTPS отсутствует.
Обязательный параметр, если не указан
httpPort
.Пример:
httpsPort: 443
- httpPortцелочисленный
- hstsбулевый
Включен ли
hsts
(подробнее…).По умолчанию:
false
- hstsOptionsобъект
Параметры HTTP Strict Transport Security.
- includeSubDomainsбулевый
Применять ли настройки
hsts
ко всем поддоменам сайта.По умолчанию:
false
- maxAgeстрока
Время в секундах, которое браузер должен помнить, что сайт доступен только с помощью HTTPS.
По умолчанию:
"31536000"
Шаблон:
^[1-9][0-9]*$
Пример:
maxAge: '31536000'
- preloadбулевый
Добавлять ли сайт в список предзагрузки.
Эти списки используются современными браузерами и разрешают подключение к сайту только по HTTPS.
По умолчанию:
false
- includeSubDomainsбулевый
- ingressClassстрока
Обязательный параметр
Имя Ingress-класса для обслуживания Ingress NGINX controller.
Позволяет создать несколько контроллеров для обслуживания одного Ingress-класса.
Важно! Если указать значение “nginx”, то дополнительно будут обрабатываться Ingress-ресурсы без аннотации
kubernetes.io/ingress.class
или поляspec.ingressClassName
.Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Пример:
ingressClass: nginx
- inletстрока
Обязательный параметр
Способ поступления трафика из внешнего мира:
LoadBalancer
— устанавливается Ingress controller и заказывается сервис с типомLoadBalancer
.LoadBalancerWithProxyProtocol
— устанавливается Ingress controller и заказывается сервис с типомLoadBalancer
. Ingress controller использует proxy-protocol для получения настоящего IP-адреса клиента.HostPort
— устанавливается Ingress controller, который доступен на портах узлов черезhostPort
.-
HostPortWithProxyProtocol
— устанавливается Ingress controller, который доступен на портах узлов черезhostPort
и использует proxy-protocol для получения настоящего IP-адреса клиента.Внимание! При использовании этого inlet вы должны быть уверены, что запросы к Ingress направляются только от доверенных источников. Одним из способов настройки ограничения может служить опция
acceptRequestsFrom
. -
HostWithFailover
— устанавливаются два Ingress controller’а - основной и резервный. Основной контроллер запускается в hostNetwork. Если Pod’ы основного контроллера недоступны, трафик уходит в резервный контроллер.Внимание! На одном хосте может быть только один controller с данным типом inlet’а.
Внимание! Необходимо, чтобы на узле были свободные порты: 80, 81, 443, 444, 10354, 10355.
Допустимые значения:
LoadBalancer
,LoadBalancerWithProxyProtocol
,HostPort
,HostPortWithProxyProtocol
,HostWithFailover
- legacySSLбулевый
Включены ли старые версии TLS. Также опция разрешает legacy cipher suites для поддержки старых библиотек и программ: OWASP Cipher String ‘C’ . Подробнее здесь.
По умолчанию: включён только TLSv1.2 и самые новые cipher suites.
- loadBalancerобъект
Необязательный параметр.
Секция настроек для inlet’а
LoadBalancer
.- annotationsобъект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! Модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа load balancer’а применяются только при создании сервиса, то для обновления подобных параметров необходимо будет пересоздать
IngressNginxController
(или создать новый, затем удалив старый). - behindL7Proxyбулевый
Включает обработку и передачу
X-Forwarded-*
заголовков.Внимание! При использовании этой опции вы должны быть уверены, что запросы к Ingress направляются только от доверенных источников.
- realIPHeaderстрока
Заголовок, из которого будет получен настоящий IP-адрес клиента.
Работает только при включении
behindL7Proxy
.По умолчанию:
"X-Forwarded-For"
Пример:
realIPHeader: CF-Connecting-IP
- sourceRangesмассив строк
Список CIDR, которым разрешен доступ на балансировщик.
Облачный провайдер может не поддерживать данную опцию и игнорировать её.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- annotationsобъект
- loadBalancerWithProxyProtocolобъект
Необязательный параметр.
Секция настроек для inlet
LoadBalancerWithProxyProtocol
.- annotationsобъект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа load balancer применяются только при создании сервиса, то для обновления подобных параметров необходимо будет пересоздать
IngressNginxController
(или создать новый, затем удалив старый). - sourceRangesмассив строк
Список CIDR, которым разрешен доступ на балансировщик.
Облачный провайдер может не поддерживать данную опцию и игнорировать её.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- annotationsобъект
- maxReplicasцелочисленный
Максимально количество реплик
LoadBalancer
иLoadBalancerWithProxyProtocol
для HPA.По умолчанию:
1
Допустимые значения:
1 <= X
- minReplicasцелочисленный
Минимальное количество реплик
LoadBalancer
иLoadBalancerWithProxyProtocol
для HPA.По умолчанию:
1
Допустимые значения:
1 <= X
- nodeSelectorобъект
Как в
spec.nodeSelector
у Pod’ов.Если ничего не указано или указано
false
— будет использоваться автоматика.Формат: стандартный список
nodeSelector
. Pod’ы инстанса унаследуют это поле как есть. - resourcesRequestsобъект
Настройки максимальных значений CPU и memory, которые может запросить Pod при выборе узла (если VPA выключен, максимальные значения становятся желаемыми).
- modeстрока
Обязательный параметр
Режим управления реквестами ресурсов.
По умолчанию:
"VPA"
Допустимые значения:
VPA
,Static
- staticобъект
Настройки статического режима управления.
- cpuстрока
Значение для запроса CPU.
По умолчанию:
"350m"
- memoryстрока
Значение для запроса memory.
По умолчанию:
"500Mi"
- cpuстрока
- vpaобъект
Настройки VPA режима управления.
- cpuобъект
Настройки для CPU.
- maxстрока
Максимальное значение, которое может выставить VPA для запроса cpu.
По умолчанию:
"50m"
- minстрока
Минимальное значение, которое может выставить VPA для запроса cpu.
По умолчанию:
"10m"
- maxстрока
- memoryобъект
Значение для запроса memory.
- maxстрока
Максимальное значение, которое может выставить VPA для запроса memory.
По умолчанию:
"200Mi"
- minстрока
Минимальное значение, которое может выставить VPA для запроса memory.
По умолчанию:
"50Mi"
- maxстрока
- modeстрока
Режим работы VPA.
По умолчанию:
"Initial"
Допустимые значения:
Initial
,Auto
- cpuобъект
- modeстрока
- tolerationsмассив объектов
Как в
spec.tolerations
у Pod’ов.Если ничего не указано или указано
false
— будет использоваться автоматика.Формат: стандартный список toleration. Pod’ы инстанса унаследуют это поле как есть.
- effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- keyстрока
- operatorстрока
По умолчанию:
"Equal"
Допустимые значения:
Exists
,Equal
- tolerationSecondsцелочисленный
- valueстрока
- effectстрока
- underscoresInHeadersбулевый
По умолчанию:
false
- validationEnabledбулевый
Включить валидацию Ingress-правил.
Внимание!: Данная функция не работает для контроллеров версии <0.33.
По умолчанию:
true
- waitLoadBalancerOnTerminatingцелочисленный
Количество секунд до того, как /healthz начнет возвращать код 500, когда Pod перейдет в статус Terminating.
- acceptRequestsFromмассив строк