Заставить службу Docker получить доступ к другой службе, размещенной на том же узле.

В режиме роя докеров у меня есть

Рабочий узел 1, на котором запущены Service1 и Service2 Рабочий узел 2, на котором запущены Service1 и Service2

Сервис 1 на рабочем узле 1 должен вызывать API на сервисе 2.

Когда Service1 вызывает API, каждый раз его нагрузка распределяется между Service2 node1 и node2.

Как заставить докер всегда обращаться к сервису 2 узла 1, пока он не выйдет из строя?


person mskm    schedule 11.03.2019    source источник


Ответы (1)


Это невозможно.

Docker swarm не встраивает никакой логики, учитывающей местоположение, для обнаружения службы DNS. Виртуальный IP-адрес службы для любой данной службы будет балансировать нагрузку в стиле циклического перебора для всех задач в службе, независимо от того, где они расположены.

Существует открытый запрос на эту функцию: https://github.com/moby/moby/issues/32854

person programmerq    schedule 11.03.2019