Entire tutorial here: http://chunqi.li/2015/11/09/docker-multi-host-networking/
This is an excellent alternative if your system is based in Docker and you want to enable communication between dockers placed in different hosts. Using the overlay network each docker will get a 10.0.0.X IP that will be visible by all containers regardless of its host.
In our use case we have used etcd as p2p key-value storage so it must be running in all nodes to keep track of the different changes on the network. The only drawback is that you will need to use as a master node one container attached to the network because none of the external hosts will have access to all containers.