Using service registry to store the state
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...