I'm fairly new to Docker Swarm and have been experimenting with it in a test environment. I have a 3-node cluster where each node is a master. Currently, Node 1 is the active master and has a service running with one replica. I can access the service directly from Node 1 using its IP, but when I try to access the same service from Node 2 or Node 3, it fails. Interestingly, if I move the service to either Node 2 or Node 3, I can access it just fine from those nodes but not from Node 1. It seems like the routing mesh isn't properly handling traffic between Node 1 and the other nodes. I'm looking for some tips on how to troubleshoot this issue. Thanks!
2 Answers
Have you considered removing and then re-adding Node 1 to the cluster? Sometimes that can help resolve strange issues with routing.
Have you checked for any networking issues specifically with Node 1? I had a similar situation where it turned out to be a routing problem from my hosting provider. It might be worth double-checking your network setup.
Thanks for the suggestion! My setup is fully contained within my home lab on Proxmox, so I'm pretty sure it's not a hosting problem. I've looked at various potential issues like addressing conflicts and network settings, but no luck so far. I was thinking about rebuilding the cluster again but wanted to see if there's anything else I can try first.

Actually, I found the issues and fixed them! I initially separated admin and data traffic into different network segments, which caused some routing problems. I decided to rebuild the whole cluster, placing both types of traffic on the same segment. Once I did that, everything started working as expected. I guess I didn't fully grasp how Docker handles routing between multiple interfaces.