Одно преимущество использования оркестровки, например, Режим роя состоит в том, что теперь вы не должны ничего об одиночных узлах в своем рое. Вместо этого рой работает на более высоком уровне абстракции, чем узлы -> на services
.
Таким образом, вы указываете Swarm, из каких узлов он состоит, какие сервисы у вас есть и сколько экземпляров контейнеров вы хотите запустить внутри Swarm для каждого отдельного сервиса. После настройки, это работа Swarm, чтобы решить / узнать, какой контейнер работает на каком узле. Опять же: вам нет дела до отдельных узлов.
Так что вопрос не в том, как сделать
http://A:80
http://B:80
http://C:80
(Пере) маршрут к правильному / действительному узлу (работает соответствующий контейнер с открытым портом)
потому что единственное, что вам нужно знать, это название вашей службы. Так вы только позвоните
http://myservice:80
А затем в режиме роя будет решено, на какой узел будет переслан запрос (http://A:80
или http://B:80
или http://C:80
). И если у вас есть 3 узла, 1 служба и 2 реплики для этого роя служб, это гарантирует, что никакие запросы не будут пересылаться на узел, на котором не работает ни один контейнер, потому что он знает, что есть только 2 реплики, и он знает, на каких узлах эти экземпляры бежать.