나는 세 개의 노드로 구성된 무리가 : 그럼도커 떼 확장 행동
$ sudo docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
i12s3zxsn4vu1c98bv3i5idr8 node03 Ready Active
i2ckxvsju4tmommxim3dbfq7l node02 Ready Active
wak4isl46dn7pbo39drrhphju * node01 Ready Active Leader
내가 그 무리에 nginx를 1 복제본을 실행하고 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에 도달 할 수 있습니다, 나는 6의 nginx 인스턴스를 확장 :
$ 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에 접속할 수 있습니다.
그러나 도커가 여러 노드를 고유 호스트로 표시하면 모든 nginx 서비스가 동일한 8080 포트에 매핑되므로 이러한 스케일링 작업 중에 어떻게 포트를 관리합니까? 내부적으로 웜에 의해 수행되고 8080에 대한 응답을 반환하는 모든 서비스 인스턴스간에 라운드 로빈로드 균형 조정이 있습니까?