Ingress Nginx Operator
Содержание
OverviewInstallationConfiguration Via Web ConsoleConfiguration Via YAMLIngress ShardingСоздание IngressNginx, обрабатывающего Ingress во всех NSСоздание IngressNginx, обрабатывающего Ingress в конкретных NSЭкспонирование через LoadBalancerРасширенные настройки развертывания контроллераSSL PassthroughПоддержка Dual-Stack IPv4 и IPv6Additional ResourcesОтличия значений по умолчанию от официального чартаOverview
Ingress Nginx Operator предоставлен для упрощения расширенного управления развертываниями Ingress-Nginx.
Этот Operator оптимизирует процессы развертывания, настройки и обслуживания экземпляров Ingress-Nginx. Операционная архитектура работает следующим образом: Ingress-Nginx Operator непрерывно отслеживает Custom Resource типа ingressnginxes.ingress-nginx.alauda.io (IngressNginx) и автоматически создает соответствующие экземпляры Ingress-Nginx для каждого определенного ресурса IngressNginx. Такая архитектура позволяет напрямую управлять пользовательскими ресурсами IngressNginx для контроля функциональности и поведения Ingress-Nginx.
Installation
- Перейдите в
Administrator -> Marketplace -> OperatorHub - Найдите
Alauda build of Ingress NGINX Controllerи нажмитеInstall
Configuration Via Web Console
Мы предоставляем базовые параметры конфигурации через пользовательский интерфейс, который сгенерирует соответствующий YAML. Для более сложных настроек вы можете редактировать YAML напрямую.
После завершения установки Ingress Nginx Operator:
- Перейдите на вкладку
All Instances - Нажмите
Create, затем в появившемся диалоговом окне найдите раздел типа экземпляра IngressNginx и нажмитеCreate
Configuration Via YAML
По умолчанию Ingress Nginx Operator развертывает экземпляры Ingress Nginx в том же namespace, что и соответствующий пользовательский ресурс IngressNginx.
Ingress Sharding
По умолчанию Ingress Nginx обрабатывает ресурсы Ingress во всех namespace для ingress, которые либо явно указывают имя своего IngressClass, либо не указывают IngressClass вовсе. Вы можете использовать .controller.scope.namespaceSelector, чтобы ограничить экземпляр определёнными namespace. Например, следующий ресурс IngressNginx demo-scope обрабатывает ingress только в namespace с меткой cpaas.io/project=demo.
Создание IngressNginx, обрабатывающего Ingress во всех NS
Создание IngressNginx, обрабатывающего Ingress в конкретных NS
- формат
$LABLE_KEY=$LABLE_VALUE
Экспонирование через LoadBalancer
По умолчанию Ingress Controller настроен с типом сервиса ClusterIP. Чтобы открыть Ingress Controller извне с помощью сервиса LoadBalancer, примените следующую конфигурацию:
Сервисы LoadBalancer требуют интеграции с внешним балансировщиком нагрузки (облачный LB или MetalLB) для выделения внешнего IP.
Чтобы указать VIP LoadBalancer при использовании MetalLB:
Расширенные настройки развертывания контроллера
Настройте сетевой режим, количество реплик, лимиты ресурсов и выбор узлов:
SSL Passthrough
Включение функционала SSL passthrough:
При SSL passthrough TLS завершается на бэкенде, поэтому функции уровня L7 (например, манипуляция заголовками запросов/ответов, WAF, перенаправление HTTP на HTTPS, некоторые схемы аутентификации) не будут применяться к такому трафику на контроллере.
Поддержка Dual-Stack IPv4 и IPv6
Additional Resources
Поле .spec ресурса IngressNginx напрямую соответствует значениям Helm chart для Ingress Nginx. Для дополнительных параметров конфигурации обратитесь к официальной документации Ingress NGINX.
Отличия значений по умолчанию от официального чарта
- По умолчанию каждый экземпляр IngressNginx создает IngressClass с именем
$ns-$nameи controllerValueingress-nginx.cpaas.io/$ns-$name. Эти значения можно настроить с помощью параметров.spec.controller.ingressClassResource.nameи.spec.controller.ingressClassResource.controllerValue. - По умолчанию
.spec.controller.service.typeустановлен вClusterIP. - По умолчанию
.spec.controller.watchIngressWithoutClassустановлен вtrue, что означает, что контроллер будет обрабатывать ресурсы Ingress, не указывающие IngressClass.