我有三個節點組成的羣:泊塢羣縮放行爲
$ sudo docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
i12s3zxsn4vu1c98bv3i5idr8 node03 Ready Active
i2ckxvsju4tmommxim3dbfq7l node02 Ready Active
wak4isl46dn7pbo39drrhphju * node01 Ready Active Leader
然後,我對羣運行1個副本Nginx的和他的端口映射到8080:
$ sudo docker service create --replicas 1 --publish 8080:80 --name nginx nginx
$ sudo docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
neahnb9mvi1i nginx replicated 1/1 nginx:latest *:8080->80/tcp
從那裏,我可以達到上http://node01:8080
接下來nginx的,我nginx的規模實例6:
$ sudo docker service scale nginx=6
$ sudo docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
neahnb9mvi1i nginx replicated 6/6 nginx:latest *:8080->80/tcp
從那裏,我仍然能夠達到http://node01:8080 nginx。但是,如果docker swarm將多個節點公開爲唯一主機,那麼在如此縮放操作期間如何管理端口,因爲我所有的nginx服務都映射到同一個8080端口上?在內部由swarm完成的所有服務實例之間是否存在循環負載均衡並在8080上返回答案?