Перенос внешней службы Kubernetes с балансировщика нагрузки на входной контроллер

#kubernetes #kubernetes-ingress #nginx-ingress

#kubernetes #kubernetes-вход #nginx-вход

Вопрос:

Итак, в настоящее время у меня есть 2 службы в пространстве имен под названием «разработка», которым необходимо обрабатывать внешний трафик, и в настоящее время они используют type:LoadBalancer и имеют свои собственные внешние IP-адреса и записи DNS.

Я хочу начать использовать входной контроллер (nginx), развернутый в отдельном пространстве имен (называемом «ingress-controller»), и у меня есть несколько вопросов о том, как будет выглядеть конечное состояние

Итак, если я правильно понимаю, я должен сначала создать вход в пространстве имен «development», затем создать развертывание ingress и службу внешнего типа: LoadBalancer в пространстве имен «ingress-controller» и настроить DNS-запись для внешнего IP-адреса службы ingress controller. Затем мне нужно изменить исходные 2 службы в пространстве имен «разработка» на ClusterIP, которые теперь будут получать трафик из-за правила входа.

Как будут работать имена хостов? Скажем, у моей первой службы была DNS-запись «foo.com «, вторая служба была вызвана «bar.com «, могу ли я настроить правила входа для маршрутизации запросов в 2 разных домена?

Ответ №1:

Вы уже хорошо разбираетесь в ingress. Теперь вам нужно использовать external-dns.

Это создаст для вас DNS, который вы укажете в своем входе. Например.

 - host: foo.com
  http:
    paths:
      - path: /*
        backend:
          serviceName: <your service name>
          servicePort: 80
  

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

1. Таким образом, это означает, что external-dns в основном создаст запись для foo.com для сопоставления с IP-адресом службы ingress controller правильно?

2. @Jatinshravan: Да. Я использую балансировщик нагрузки между dns и сервисом

Ответ №2:

Теперь, когда вы уже создали правило входа, осталось установить DNS-запись «foo.com » и «bar.com » на внешний IP-адрес службы ingress controller.