I'm playing with a simple scenario on docker swarm. Three identical (the same template, ports etc.) micro machines on EC2. One of them was set (manually) as a manager, other two as workers.
I have added simple replicated (3 replicas) service showing server details on port 80:
docker service create --name my-web --publish published=80,target=80 nginxdemos/hello
docker service scale my-web=3
Tasks are then spread evenly across the nodes - 1 manager/worker and 2 workers.
When I'm hitting public IPs of any of worker nodes I'm getting load-balancing between worker1 and worker2 (it never hits manager node). On the other hand, when I'm hitting manager node public IP load is never balanced on workers.
I would expect to be load-balanced between all 3 nodes more or less equaly. In practice though manager looks like working in host mode, while workers ignored manager in the loadbalancing?