In your case it’s best to run the application inside of the swarm because unfortunately the issue will still happen even if you give your client all the servers. From Swarms documentation:
When a user or process connects to a service, any worker node running a service task may respond.
Say you have 3 swarm nodes IP with addresses 172.0.1.2, 172.0.1.3, 172.0.1.4. And the key you want is inside a container on the 3rd node (172.0.1.4). When you access 172.0.1.4:11210 the mesh networking allows any node in the swarm exposing port 11210 to respond which may not be that exact host. The sdk may attempt to smartly find the IP of the actual container with the key, but at that point it will be using IP’s on swarm’s overlay network which will timeout since you are outside of that network.
I’m not aware of a way around this from a swarm perspective, but having your app on the overlay network should resolve issues here.
-Tommie