Разрешение URL-адреса в качестве другого URL-адреса внутри стручка kubernetes - PullRequest
0 голосов
/ 14 ноября 2018

Мой модуль (pod1) может подключаться к другому модулю, используя его сервис, как показано ниже:

pod2-service.namespace.svc.cluster.local

Однако я хочу, чтобы pod1 подключился к pod2 с помощью URL-адреса, подобного abc.com, который не зарегистрирован в DNS. В основном, я хочу, чтобы pod1 разрешил abc.com как pod2-service.namespace.svc.cluster.local.

Я смотрел на hostAliases здесь:

https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/.

Однако для этого нужен IP. Как я могу сделать это в Kubernetes?

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Есть несколько вещей:

Тем не менее, по-видимому, pod to pod изначально не поддерживается Kubernetes в Deployments , и я думаю, что логическое обоснование здесь заключается в том, что pods может постоянно менять IP-адреса и имена.Можно использовать Записи DNS по умолчанию для Pod , но опять же записи DNS будут различаться в зависимости от IP-адресов, назначенных для модулей.

Другое решение, которое я могу придумать для развертываний, - это использовать что-то вроде Consul с доменами-заглушками , тогда на каждом модуле вам нужно будет добавить initContainer или сопроводительный агент консула, чтобы зарегистрировать свой IP в службе consul, при каждом перезапуске модуля необходимо будет перезаписать DNS-регистрацию в Консуле.

Если вы не хотите использовать домен-заглушкуесть также возможность использования Pod DNS Configs .

0 голосов
/ 14 ноября 2018

вы можете получить ip службы и добавить к /etc/hosts в pod1 до запуска кода приложения.

echo "$(getent hosts pod2-service.namespace.svc.cluster.local | awk '{ print $1 }') abc.com" >> /etc/hosts

Notice: It is pretty hacky because you should guarantee service ip of pod2 is fixed. When service ip changed, pod1 will fail to reslove the host.

0 голосов
/ 14 ноября 2018

Я думаю, что вы можете использовать фиксированный ip в качестве служебного ip вашего pod2, а затем использовать этот ip в своем определении hostalias.

...