2016-11-03 3 views
1

У меня есть приложение, которое использует плот, чтобы избрать лидера из нескольких экземпляров. Эти экземпляры используют протокол сплетен, поэтому ему просто нужно узнать другой экземпляр, чтобы обнаружить остальные.Как могут контейнеры в наборе реплик кубернетов обнаруживать и разговаривать друг с другом без API кубернетов?

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

Моя проблема: как я могу получить содержимое наборов реплик для обнаружения друг друга без API-интерфейса kubernetes? Возможно ли это через DNS, или кубернеты предоставляют некоторые переменные среды?

ответ

1

Решение заключается в использовании безголового обслуживания. Например, мы можем развернуть безгласную службу под названием myservice-discovery. Поскольку служба безгласна, она не выполняет балансировку нагрузки или не получает IP-адрес кластера. Чтобы получить IP-адреса контейнеров, вы затем запрашиваете DNS-сервер для myservice-discovery.mycluster, чтобы получить список записей A.

Вы также можете настроить вторую обычную (без headless) услугу, если стручки также должны быть доступны другим службам и контейнерам.

Смежные вопросы