Main Deployment Configurations
At a high level, you have four main deployment configurations:
Single-node
With a single-node deployment, all the components run on the same server. This is great for testing, learning, and developing around Kubernetes.
Single head node, multiple workers
Adding more workers, a single head node and multiple workers typically will consist of a single node etcd instance running on the head node with the API, the scheduler, and the controller-manager.
Multiple head nodes with HA, multiple workers
Multiple head nodes in an HA configuration and multiple workers add more durability to the cluster. The API server will be fronted by a load balancer, the scheduler and the controller-manager will elect a leader (which is configured via flags). The etcd setup can still be single node.
HA etcd, HA head nodes, multiple workers
The most advanced and resilient setup would be an HA etcd cluster, with HA head nodes and multiple workers. Also, etcd would run as a true cluster, which would provide HA and would run on nodes separate from the Kubernetes head nodes. Which of the four you will use will depend on how advanced you are in your Kubernetes journey, but also on what your goals are.
The use of Kubernetes Federation also offers high availability. Multiple clusters are joined together with a common control plane allowing movement of resources from one cluster to another administratively or after failure. While Federation has has some issues, there is hope v2 will be a stronger product.
Last updated