Можно ли устанавливать несколько контроллеров nginx-ingress в одном пространстве имен Kubernetes?

#kubernetes-ingress #nginx-ingress #azure-aks

#kubernetes-ingress #nginx-ingress #azure-aks

Вопрос:

В AKS у нас есть требование установить два контроллера nginx внутри одного пространства имен Kubernetes. На самом деле, нам нужно назначить каждому контроллеру выделенный IP и DNS-адрес. Вызывает ли это какой-либо конфликт между контроллерами? Есть ли какие-либо рекомендации относительно наличия нескольких контроллеров nginx в пространстве имен?

Ответ №1:

На ваш вопрос можно ответить с помощью официальной документации.

При запуске контроллера NGINX Ingress у вас есть следующие параметры в отношении того, какие ресурсы конфигурации он обрабатывает:

  • Входной контроллер для всего кластера (по умолчанию). Входной контроллер обрабатывает ресурсы конфигурации, созданные в любом пространстве имен кластера. Поскольку NGINX — это высокопроизводительный балансировщик нагрузки, способный обслуживать множество приложений одновременно, этот параметр используется по умолчанию в наших установочных манифестах и рулевой таблице.
  • Входной контроллер с одним пространством имен. Вы можете настроить входной контроллер для обработки ресурсов конфигурации только из определенного пространства имен, которое управляется с помощью аргумента -watch-namespace командной строки. Это может быть полезно, если вы хотите использовать разные входные контроллеры NGINX для разных приложений, как с точки зрения изоляции, так и / или работы.
  • Входной контроллер для определенного входного класса. Этот параметр работает в сочетании с любым из вышеперечисленных параметров. Вы можете дополнительно настроить, какие ресурсы конфигурации обрабатываются контроллером входа, настроив класс контроллера входа и используя этот класс в своих ресурсах конфигурации. См. Раздел Настройка класса Ingress .

Вы можете развернуть любое количество входных контроллеров в кластере. Когда вы создаете вход, вы должны аннотировать каждый вход соответствующим ingress.class , чтобы указать, какой контроллер входа следует использовать, если в вашем кластере существует более одного.

Основная идея заключается в том, что несколько входных контроллеров могут сосуществовать и отключать ingress.class аннотацию.

Комментарии:

1. @EhsanMirsaeedi Кому-нибудь из вас удалось заставить это работать?

2. @EhsanMirsaeedi, пожалуйста, сообщите нам о своем подходе. Заранее спасибо!