Кубернетес с 2 входами (nginx) - PullRequest
1 голос
/ 13 января 2020

Я пытаюсь создать второй вход для моего кластера azure Kubernetes (AKS). Один для внутреннего использования компанией и один для клиентов.

Первый контроллер построен по следующему сценарию:

https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.27.0/deploy/static/mandatory.yaml

И сервис :

https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.27.0/deploy/static/provider/cloud-generic.yaml

Официальный учебник от Nginx (https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/) говорит, что мне нужно использовать --ingress -class флаг для разделения двух контроллеров. И когда оба контроллера созданы, мне нужно сослаться на каждый ресурс, какой контроллер используется аннотацией ingress.class.

первый вопрос

Это имеет смысл, потому что я могу создать два разных входа со спецификациями маршрутизации. Но нужно ли мне также ссылаться на контроллер в Nginx -сервисе?

Второй вопрос

Я редактирую обязательный .yaml на своем компьютере и применяю его в локальном файле YAML. Таким образом, я передал флаг --ingress-class аргументам контроллера (запущен в строке 218 required.yaml):

containers:
  - name: nginx-ingress-controller
    image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:master
    args:
      - /nginx-ingress-controller
      - --configmap=$(POD_NAMESPACE)/nginx-configuration
      - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
      - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
      - --publish-service=$(POD_NAMESPACE)/ingress-nginx
      - --annotations-prefix=nginx.ingress.kubernetes.io
      - --ingress-class=nginx-external

Когда я повторно развернул его в обязательном порядке .yaml с --ingress-class = nginx -внутри, существующий контроллер будет перенастроен, но второй контроллер не будет развернут. Что я делаю не так?

1 Ответ

1 голос
/ 13 января 2020
  1. Для услуги nginx необходимо предоставить селектор и метки, чтобы он выбирал ваши вторые nginx входные модули контроллера.

  2. Вы только что изменили существующее развертывание с именем nginx-ingress-controller существующего входного контроллера. Вот почему он перенастроил ваш существующий входной контроллер. Вам нужно создать новый yaml развертывания с другим именем и добавить флаг --ingress-class в новом развертывании.

Я бы предложил создать два разных пространства имен и два разных набора yamls для входного контроллера 1 и входного контроллера 2 и изменить имя, пространство имен, метки и селекторы в этих yamls.

...