Принудительно предоставить службе docker доступ к другой службе, размещенной на том же узле

#docker #docker-swarm #swarm #docker-swarm-mode #docker-stack

#docker #docker-swarm #swarm #docker-swarm-mode #docker-stack

Вопрос:

В режиме docker swarm у меня есть

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

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

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

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

Ответ №1:

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

Docker swarm не использует какую-либо логику обнаружения службы dns с учетом местоположения. Служба vip для любой данной службы будет балансировать нагрузку циклическим способом по всем задачам в службе, независимо от того, где они расположены.

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