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’ы, которые будут добавлены к каждому запросу. Указываются в формате ключ: значение(строка).

    • chaosMonkey (булевый)

      Инструмент, позволяющий систематически вызывать случайные прерывания работы Pod’ов контроллера.

      Предназначен для проверки ingress контроллера на реальную работу отказоустойчивости.

      По умолчанию: false

    • config (объект)

      Секция настроек Ingress controller, в которую в формате ключ: значение(строка) можно записать любые возможные опции.

      Внимание! Ошибка в указании опций может привести к отказу в работе Ingress controller’а.

      Внимание! Не рекомендуется использовать данную опцию, т.к. не гарантируется обратная совместимость или работоспособность Ingress controller.

    • controllerVersion (строка)

      Версия Ingress NGINX-контроллера.

      По умолчанию: версия из настроек модуля.

      Допустимые значения: 0.25, 0.26, 0.33, 0.46, 0.48

    • customErrors (объект)

      Секция с настройкой кастомизации HTTP-ошибок (если секция определена, то все параметры в ней являются обязательными, изменение любого параметра приводит к перезапуску всех Ingress NGINX контроллеров).

      • serviceName — имя сервиса, который будет использоваться, как custom default backend.
      • namespace — имя namespace, в котором будет находиться сервис, используемый, как custom default backend.
      • codes — список кодов ответа (массив), при которых запрос будет перенаправляться на custom default backend.
      • codes (массив строк)

        Список кодов ответа (массив), при которых запрос будет перенаправляться на custom default backend.

        Обязательный параметр.

        Шаблон: ^[1-5][0-9][0-9]$

      • namespace (строка)

        Имя namespace, в котором будет находиться сервис, используемый, как custom default backend.

        Пример: "default"

        Обязательный параметр.

      • serviceName (строка)

        Имя сервиса, который будет использоваться, как custom default backend.

        Пример: "custom-errors-backend-service"

        Обязательный параметр.

    • 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 (массив строк)

        Список ревизий баз данных, которые будут скачаны при старте.

        Чем отличаются, например, GeoIP2-City от GeoLite2-City можно ознакомиться в этой статье.

        По умолчанию: ["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 при каждом старте контроллера. Подробнее о получении ключа.

    • hostPort (объект)

      Секция настроек для inlet HostPort.

      • behindL7Proxy (булевый)

        Включает обработку и передачу X-Forwarded-* заголовков.

        Внимание! При использовании этой опции необходимо быть увереным, что запросы к Ingress направляются только от доверенных источников. Одним из способов настройки ограничения может служить опция acceptRequestsFrom.

      • httpPort (целочисленный)

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан – возможность подключения по HTTP отсутствует.

        Обязательный параметр, если не указан httpsPort.

        Пример: 80

      • httpsPort (целочисленный)

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан – возможность подключения по HTTPS отсутствует.

        Обязательный параметр, если не указан httpPort.

        Пример: 443

      • realIPHeader (строка)

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включении behindL7Proxy.

        По умолчанию: "X-Forwarded-For"

        Пример: "CF-Connecting-IP"

    • hostPortWithProxyProtocol (объект)

      Секция настроек для inlet HostPortWithProxyProtocol.

      • httpPort (целочисленный)

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан – возможность подключения по HTTP отсутствует.

        Обязательный параметр, если не указан httpsPort.

        Пример: 80

      • httpsPort (целочисленный)

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан – возможность подключения по HTTPS отсутствует.

        Обязательный параметр, если не указан httpPort.

        Пример: 443

    • hsts (булевый)

      Включен ли hsts (подробнее…).

      По умолчанию: false

    • hstsOptions (объект)

      Параметры HTTP Strict Transport Security.

      • includeSubDomains (булевый)

        Применять ли настройки hsts ко всем поддоменам сайта.

        По умолчанию: false

      • maxAge (строка)

        Время в секундах, которое браузер должен помнить, что сайт доступен только с помощью HTTPS.

        По умолчанию: "31536000"

        Шаблон: ^[1-9][0-9]*$

        Пример: "31536000"

      • preload (булевый)

        Добавлять ли сайт в список предзагрузки.

        Эти списки используются современными браузерами и разрешают подключение к сайту только по HTTPS.

        По умолчанию: false

    • ingressClass (строка)

      Имя Ingress-класса для обслуживания Ingress NGINX controller.

      Позволяет создать несколько контроллеров для обслуживания одного Ingress-класса.

      Важно! Если указать значение “nginx”, то дополнительно будут обрабатываться Ingress-ресурсы без аннотации kubernetes.io/ingress.class.

      Шаблон: [a-z0-9]([-a-z0-9]*[a-z0-9])?

      Пример: "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"

        Пример: "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]))$

    • 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]))$

    • 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"

      • vpa (объект)

        Настройки VPA режима управления.

        • cpu (объект)

          Настройки для CPU.

          • max (строка)

            Максимальное значение, которое может выставить VPA для запроса cpu.

            По умолчанию: "50m"

          • min (строка)

            Минимальное значение, которое может выставить VPA для запроса cpu.

            По умолчанию: "10m"

        • memory (объект)

          Значение для запроса memory.

          • max (строка)

            Максимальное значение, которое может выставить VPA для запроса memory.

            По умолчанию: "200Mi"

          • min (строка)

            Минимальное значение, которое может выставить VPA для запроса memory.

            По умолчанию: "50Mi"

        • mode (строка)

          Режим работы VPA.

          По умолчанию: "Initial"

          Допустимые значения: Initial, Auto

    • tolerations (массив объектов)

      Как в spec.tolerations у Pod’ов.

      Если ничего не указано или указано false — будет использоваться автоматика.

      Формат: стандартный список toleration. Pod’ы инстанса унаследуют это поле как есть.

      • effect (строка)

        Допустимые значения: NoSchedule, PreferNoSchedule, NoExecute

      • key (строка)
      • operator (строка)

        По умолчанию: "Equal"

        Допустимые значения: Exists, Equal

      • tolerationSeconds (целочисленный)
      • value (строка)
    • underscoresInHeaders (булевый)

      Разрешены ли нижние подчеркивания в заголовках.

      Подробнее….

      Почему не стоит бездумно включать.

      По умолчанию: false

    • validationEnabled (булевый)

      Включить валидацию Ingress-правил.

      Внимание!: Данная функция не работает для контроллеров версии <0.33.

      По умолчанию: true

    • waitLoadBalancerOnTerminating (целочисленный)

      Количество секунд до того, как /healthz начнет возвращать код 500, когда Pod перейдет в статус Terminating.

      По умолчанию: 60

  • 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’ы, которые будут добавлены к каждому запросу. Указываются в формате ключ: значение(строка).

    • chaosMonkey (булевый)

      Инструмент, позволяющий систематически вызывать случайные прерывания работы Pod’ов контроллера.

      Предназначен для проверки ingress контроллера на реальную работу отказоустойчивости.

      По умолчанию: false

    • config (объект)

      Секция настроек Ingress controller, в которую в формате ключ: значение(строка) можно записать любые возможные опции.

      Внимание! Ошибка в указании опций может привести к отказу в работе Ingress controller’а.

      Внимание! Не рекомендуется использовать данную опцию, т.к. не гарантируется обратная совместимость или работоспособность Ingress controller.

    • controllerVersion (строка)

      Версия Ingress NGINX-контроллера.

      По умолчанию: версия из настроек модуля.

      Допустимые значения: 0.25, 0.26, 0.33, 0.46, 0.48

    • customErrors (объект)

      Секция с настройкой кастомизации HTTP-ошибок (если секция определена, то все параметры в ней являются обязательными, изменение любого параметра приводит к перезапуску всех Ingress NGINX контроллеров).

      • serviceName — имя сервиса, который будет использоваться, как custom default backend.
      • namespace — имя namespace, в котором будет находиться сервис, используемый, как custom default backend.
      • codes — список кодов ответа (массив), при которых запрос будет перенаправляться на custom default backend.
      • codes (массив строк)

        Список кодов ответа (массив), при которых запрос будет перенаправляться на custom default backend.

        Обязательный параметр.

        Шаблон: ^[1-5][0-9][0-9]$

      • namespace (строка)

        Имя namespace, в котором будет находиться сервис, используемый, как custom default backend.

        Пример: "default"

        Обязательный параметр.

      • serviceName (строка)

        Имя сервиса, который будет использоваться, как custom default backend.

        Пример: "custom-errors-backend-service"

        Обязательный параметр.

    • 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 (массив строк)

        Список ревизий баз данных, которые будут скачаны при старте.

        Чем отличаются, например, GeoIP2-City от GeoLite2-City можно ознакомиться в этой статье.

        По умолчанию: ["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 при каждом старте контроллера. Подробнее о получении ключа.

    • hostPort (объект)

      Секция настроек для inlet HostPort.

      • behindL7Proxy (булевый)

        Включает обработку и передачу X-Forwarded-* заголовков.

        Внимание! При использовании этой опции необходимо быть увереным, что запросы к Ingress направляются только от доверенных источников. Одним из способов настройки ограничения может служить опция acceptRequestsFrom.

      • httpPort (целочисленный)

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан – возможность подключения по HTTP отсутствует.

        Обязательный параметр, если не указан httpsPort.

        Пример: 80

      • httpsPort (целочисленный)

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан – возможность подключения по HTTPS отсутствует.

        Обязательный параметр, если не указан httpPort.

        Пример: 443

      • realIPHeader (строка)

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включении behindL7Proxy.

        По умолчанию: "X-Forwarded-For"

        Пример: "CF-Connecting-IP"

    • hostPortWithProxyProtocol (объект)

      Секция настроек для inlet HostPortWithProxyProtocol.

      • httpPort (целочисленный)

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан – возможность подключения по HTTP отсутствует.

        Обязательный параметр, если не указан httpsPort.

        Пример: 80

      • httpsPort (целочисленный)

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан – возможность подключения по HTTPS отсутствует.

        Обязательный параметр, если не указан httpPort.

        Пример: 443

    • hsts (булевый)

      Включен ли hsts (подробнее…).

      По умолчанию: false

    • hstsOptions (объект)

      Параметры HTTP Strict Transport Security.

      • includeSubDomains (булевый)

        Применять ли настройки hsts ко всем поддоменам сайта.

        По умолчанию: false

      • maxAge (строка)

        Время в секундах, которое браузер должен помнить, что сайт доступен только с помощью HTTPS.

        По умолчанию: "31536000"

        Шаблон: ^[1-9][0-9]*$

        Пример: "31536000"

      • preload (булевый)

        Добавлять ли сайт в список предзагрузки.

        Эти списки используются современными браузерами и разрешают подключение к сайту только по HTTPS.

        По умолчанию: false

    • ingressClass (строка)

      Имя Ingress-класса для обслуживания Ingress NGINX controller.

      Позволяет создать несколько контроллеров для обслуживания одного Ingress-класса.

      Важно! Если указать значение “nginx”, то дополнительно будут обрабатываться Ingress-ресурсы без аннотации kubernetes.io/ingress.class.

      Шаблон: [a-z0-9]([-a-z0-9]*[a-z0-9])?

      Пример: "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"

        Пример: "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]))$

    • 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]))$

    • 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"

      • vpa (объект)

        Настройки VPA режима управления.

        • cpu (объект)

          Настройки для CPU.

          • max (строка)

            Максимальное значение, которое может выставить VPA для запроса cpu.

            По умолчанию: "50m"

          • min (строка)

            Минимальное значение, которое может выставить VPA для запроса cpu.

            По умолчанию: "10m"

        • memory (объект)

          Значение для запроса memory.

          • max (строка)

            Максимальное значение, которое может выставить VPA для запроса memory.

            По умолчанию: "200Mi"

          • min (строка)

            Минимальное значение, которое может выставить VPA для запроса memory.

            По умолчанию: "50Mi"

        • mode (строка)

          Режим работы VPA.

          По умолчанию: "Initial"

          Допустимые значения: Initial, Auto

    • tolerations (массив объектов)

      Как в spec.tolerations у Pod’ов.

      Если ничего не указано или указано false — будет использоваться автоматика.

      Формат: стандартный список toleration. Pod’ы инстанса унаследуют это поле как есть.

      • effect (строка)

        Допустимые значения: NoSchedule, PreferNoSchedule, NoExecute

      • key (строка)
      • operator (строка)

        По умолчанию: "Equal"

        Допустимые значения: Exists, Equal

      • tolerationSeconds (целочисленный)
      • value (строка)
    • underscoresInHeaders (булевый)

      Разрешены ли нижние подчеркивания в заголовках.

      Подробнее….

      Почему не стоит бездумно включать.

      По умолчанию: false

    • validationEnabled (булевый)

      Включить валидацию Ingress-правил.

      Внимание!: Данная функция не работает для контроллеров версии <0.33.

      По умолчанию: true

    • waitLoadBalancerOnTerminating (целочисленный)

      Количество секунд до того, как /healthz начнет возвращать код 500, когда Pod перейдет в статус Terminating.

      По умолчанию: 60