I have spent several hours trying to understand how swarm mode works and how the routing mesh does his magic. However, and perhaps is a missing/ongoing feature, I still haven’t found what I’m looking for.
IIUC, once the message is delivered to any swarm node, it’s smartly delivered to a container running on a node, so no matter which node receives the request, it will work. That’s fantastic.
However, according to https://docs.docker.com/engine/swarm/ingress/#configure-an-external-load-balancer you still need something like HAproxy to forward requests to swarm nodes in order to ensure HA.
At this point I’m a bit confused: why doesn’t docker daemon create a virtual IP interface, shared among hosts, in order to ensure HA without needing HAproxy? Seems other people is also confused: Docker 1.12 swarm still needs http (reverse) proxy?
In this scenario:
- DNS is configured to resolve foo.com to 22.214.171.124
- node1(manager) creates the swarm using 126.96.36.199 as “cluster IP”. VIP 188.8.131.52 is assigned to node1
- node2 and node3 join the swarm
- node1 goes does
- node2 becomes the new manager, and gets 184.108.40.206
Am I missing something?