Now that we have Consul instances set up let us explore how to exploit them to our own benefit. We'll study the design of the Docker Flow Proxy as a way to demonstrate some of the challenges and solutions you might want to apply to your own services.
Let us create the proxy
network and the service:
eval $(docker-machine env swarm-1)
docker network create --driver overlay proxy
docker service create --name proxy \
-p 80:80 \
-p 443:443 \
-p 8080:8080 \
--network proxy \
-e MODE=swarm \
--replicas 3 \
-e CONSUL_ADDRESS="$(docker-machine ip swarm-1):8500 \
,$(docker-machine ip \
swarm-2):8500,$(docker-machine ip swarm-3):8500" \
vfarcic/docker-flow-proxy
The command we used to create the proxy service is slightly different than before. Namely, now we have the CONSUL_ADDRESS
variable with the comma separated addresses of all three Consul instances. The proxy is made in a way that it will try the first address. If it does...