Как мне открыть URL-адрес моего API в кластере Docker Swarm?

Итак, я начинаю играть с докером, пока все хорошо, но у меня в голове возник этот вопрос.

Имея в виду эти два утверждения (пожалуйста, поправьте меня, если я что-то неправильно понимаю):

1) Docker Swarm обеспечивает обнаружение служб из коробки, что означает, что микрослужбы могут общаться друг с другом в одной сети по имени службы, фактически не зная, на каких хостах размещены другие службы.

2) Экземпляры сервисов эфемерны, поэтому сервис может размещаться на разных машинах в течение жизни роя.

Как мне узнать, какой IP-адрес должен отображаться в качестве службы центрального шлюза API, например?


person Marcos J.C Kichel    schedule 23.07.2017    source источник


Ответы (1)


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

введите здесь описание изображения

person Constantin Galbenu    schedule 24.07.2017
comment
Отлично, но теперь копнем глубже, какой IP-адрес хоста я должен указать? И как я могу управлять запасными вариантами, если исходный открытый хост по какой-то причине недоступен? - person Marcos J.C Kichel; 25.07.2017
comment
Вы можете использовать балансировщик нагрузки: docs.docker.com/engine/swarm/ images/ingress-lb.png - person Constantin Galbenu; 25.07.2017
comment
@MarcosJ.CKichel Прочтите здесь об использовании HAProxy с Docker Swarm docs.docker.com/engine/swarm/ingress/ - person Constantin Galbenu; 25.07.2017