Как настроить DNS для работы с входящим потоком Rancher 2.0?

Я новичок в Kubernetes и Rancher, но у меня есть настройка кластера и развернутая рабочая нагрузка. Я собираюсь настроить входящий трафик, но меня смущает, как должен выглядеть мой DNS.

Я буду проще: у меня есть домен (example.com), и я хочу иметь возможность настроить DNS так, чтобы он маршрутизировался на правильный IP-адрес в моем трехузловом кластере, а затем на правильный вход и балансировщик нагрузки, в конечном итоге к рабочей нагрузке.

Меня не интересует этот материал xip.io, поскольку мне нужно что-то реальное, а не песочница, и на сайте Rancher нет документации, указывающей на то, что мне следует делать.

Стоит ли запускать собственный DNS через Kubernetes? Я использую капли DigitalOcean и не нашел способа заставить Rancher настроить DNS-записи для меня (как это предполагается для других облачных провайдеров).

Это действительно расстраивает, поскольку это, по сути, первое и единственное, что вам нужно сделать ... «открыть приложение внешнему миру», и это как-то нетривиально.

Хотел бы получить любую помощь или чтобы кто-нибудь объяснил мне, насколько я тупой и чего мне не хватает!

Спасибо.


person Steadman    schedule 30.08.2018    source источник


Ответы (1)


Ты не тупой, чувак. Все усложняется. Вы используете AWS или GKE? Большинство методов развертывания кубернетов по умолчанию развертывают внутренний DNS-преобразователь для взаимодействия внутри кластера. Эти URL-адреса полезны только внутри кластера. Они принимают форму <service-name>.<namespace>.svc.cluster.local и не имеют значения для внешнего мира.

Однако показать услугу внешнему миру - это совсем другое дело. В AWS вы можете сделать это, установив для ServiceType сервиса значение LoadBalancer, где kubernetes будет автоматически запускать AWS LoadBalancer и вместе с ним имя общедоступного домена и настроить его так, чтобы он указывал на сервис внутри кластера. Отсюда вы можете настроить любое принадлежащее вам доменное имя, чтобы оно указывало на этот балансировщик нагрузки.

person Grant David Bachman    schedule 30.08.2018
comment
Спасибо Грант. Так получилось, что я все запускаю на DigitalOcean, так что здесь могут возникнуть сложности. Можно ли что-то сделать для инфраструктуры за пределами AWS и GKE? - person Steadman; 30.08.2018
comment
Извините, я это пропустил. Похоже, что платформа DigitalOcean еще недостаточно развита с точки зрения поддержки Kubernetes. Если он еще не предлагает балансировщиков нагрузки, вы можете настроить службы так, чтобы они были типа NodePort, который фактически предоставляет определенный порт на каждом узле, указывающий на эту службу. Это означает, что вы можете получить доступ к службе публично (если она находится в общедоступной сети), указав любой из IP-адресов узла на этом конкретном порту. Технически для этого не требуется DNS. - person Grant David Bachman; 30.08.2018