Чтение IP-адреса модуля k8s из запущенного в нем приложения - PullRequest
0 голосов
/ 14 мая 2018

У меня работает два модуля k8s.Каждый контейнер имеет один контейнер внутри каждого из них.Мое приложение будет работать внутри каждого контейнера.Я хочу сделать прямой HTTP-вызов из моего приложения в Pod1 в мое приложение в Pod2.

Предположим, у меня есть какое-то постоянное хранилище, хранящееся вне кластеров.Так что моя логика выглядит примерно так.

App in Pod1 -> get Pod1 IP address -> save to external storage

App in Pod2 -> read Pod1 IP address from storage -> complete HTTP call to App1 in Pod1

Как я могу получить этот IP-адрес из моего приложения.Я использую Java (Play Framework).

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Вы можете выставить IP-адрес Pod (или любой другой атрибут дескриптора Pod) переменным среды Pod, установив в свой манифест Pod что-то вроде этого:

env:
- name: MY_POD_IP
  valueFrom:
    fieldRef:
      fieldPath: status.podIP

При этом ответ Йоны, вероятно, действительно нужен вам. Служба обнаружения является первоклассным гражданином в Куберне.

0 голосов
/ 14 мая 2018

В kubernetes существует концепция, называемая сервисами, созданными специально для той цели, которую вы пытаетесь использовать. Например, внешний и внутренний интерфейсы, развернутые в kubernetes, могут обращаться друг к другу, используя имя службы. В вашем случае создайте службы для обоих модулей, и вы сможете получить доступ к своему модулю из любого другого модуля. Помимо этого пособия услуги имеют гораздо больше преимуществ и должны быть использованы. https://kubernetes.io/docs/concepts/services-networking/service/ Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...