Проверить имя модуля kubernetes на другой виртуальной машине - PullRequest
0 голосов
/ 13 июля 2020

У меня есть отдельная виртуальная машина в той же сети, что и мои кубернеты в Azure. У меня есть модуль kafka, и я могу связаться с ним по IP. Проблема в том, что IP-адрес модуля постоянно меняется.

Есть ли способ получить правильный IP-адрес каждый раз, когда IP-адрес модуля меняется?

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

Как упоминал @ arghya-sadhu, уже использующий сервис Kubernetes, это лучший вариант. У сервиса kubernetes есть IP в зависимости от типа сервиса kubernetes.

  • Для сервисов типа ClusterIP вы получаете IP-адрес кластера
  • Для сервисов типа Load Balancer , вы получите IP-адрес Loadbalancer (то есть) publi c IP-адрес
  • Для служб типа NodePort вы можете получить доступ, используя адрес узла.

Но что бы то ни было тип службы такой, вы можете получить доступ к службе, используя kube-DNS в кластере. Итак, предположим, что имя вашей службы other-service, и она предоставляет порт 8080, работающий в пространстве имен abc, тогда вы можете получить доступ к службе следующим образом:

http://other-service.abc : 8080

Поскольку ваша виртуальная машина работает вне кластера, лучше использовать Loadbalancer и обращаться к модулю с помощью URL-адреса или IP-адреса Loadbalancer. Вы можете установить вход на случай, если в кластере есть несколько модулей, к которым вы хотите подключиться.

2 голосов
/ 13 июля 2020

Я бы посоветовал использовать kubernetes service , чтобы открыть pod. Это позволяет избежать проблемы с изменением IP-адреса POD, поскольку IP-адрес службы не изменяется.

Kubernetes ServiceTypes позволяет указать, какой тип службы вы хотите. По умолчанию: ClusterIP.

Значения типа и их поведение:

ClusterIP: предоставляет Службу на внутреннем IP-адресе кластера. Выбор этого значения делает Сервис доступным только изнутри кластера. Это ServiceType по умолчанию.

NodePort: предоставляет услугу на IP-адресе каждого узла на статическом c порте (NodePort). Служба ClusterIP, к которой маршрутизируется служба NodePort, создается автоматически. Вы сможете связаться со службой NodePort извне кластера, запросив:.

LoadBalancer: предоставляет доступ к службе извне с помощью балансировщика нагрузки облачного провайдера. Сервисы NodePort и ClusterIP, к которым автоматически создаются маршруты внешнего балансировщика нагрузки.

ExternalName: сопоставляет Сервис с содержимым поля externalName (например, foo.bar.example.com), возвращая запись CNAME

Поскольку вы обращаетесь к POD извне самого кластера kubernetes, используйте службу типа NodePort или LoadBalancer.

...