Load balancing requests across all instances of a service
Before we explore load balancing, we need to have something to balance. We need multiple instances of a service. Since we already explored scaling in the previous chapter, the command should not come as a surprise:
eval $(docker-machine env node-1)
docker service scale go-demo=5
Within a few moments, five instances of the go-demo
service will be running:
Figure 3-5: Docker Swarm cluster with the go-demo service scaled
What should we do to make the proxy load balance requests across all instances? The answer is nothing. No action is necessary on our part. Actually, the question is wrong. The proxy will not load balance requests at all. Docker Swarm networking will. So, let us reformulate the question. What should we do to make the Docker Swarm network load balance requests across all instances? Again, the answer is nothing. No action is necessary on our part.
To understand load balancing, we might want to go back in time and discuss load...