Chapter 3. Orchestration and Delivery
The main motivation behind creating a cluster of Docker hosts is designing for high availability. Most, if not all, clustering and orchestration tools, such as Docker Swarm and Kubernetes, take advantage of clustering by creating a master-slave kind of relationship. This ensures that there is always a node to fall back to in case any one node goes down in the environment. While deploying a cluster to a cloud provider, there are a couple of technologies you can leverage to ensure that your environment is highly available, for example Consul, and also take advantage of the native fault-tolerant design of the cloud by deploying masters and nodes in separate availability zones.