At this point, we checked that the Swarm was operative, by creating a service nginx with 3 replicas:
$ eval $(docker-machine env mg0) $ docker service create --name nginx --replicas 3 nginx du2luca34cmy
Afteer that, we found where the net namespace ID of the running Nginx was. We connected to mg0 via SSH to mg0 via SSH. The network namespace for Swarm's routing mesh was the one having the same timestamp as the special network namespace, 1-5t4znibozx
. In this example, the namespace we're looking for is fe3714ca42d0
.
root@mg0:~# ls /var/run/docker/netns -al total 0 drwxr-xr-x 2 root root 120 Aug 22 15:38 . drwx------ 5 root root 100 Aug 22 13:39 .. -r--r--r-- 1 root root 0 Aug 22 15:17 1-5t4znibozx -r--r--r-- 1 root root 0 Aug 22 15:36 d9ef48834a31 -r--r--r-- 1 root root 0 Aug 22 15:17 fe3714ca42d0
We can figure out our IPVS entries with ipvsadm, and run it inside the net namespace using the nsenter tool (https://github.com/jpetazzo/nsenter), as follows...