The first section of the official Kubernetes tutorial states that,
A Kubernetes cluster that handles production traffic should have a minimum of three nodes.
but gives no rationale for why three is preferred. Is three desirable over two in order to avoid a split-brain scenario, to merely allow for greater availability, or to cater to something specific to the internals of Kubernetes? I would have thought a split-brain scenario would only happen with multiple Kubernetes clusters (each having distinct masters) whereas a single cluster should be able to handle at least two nodes, each, perhaps, in their own availability-zone.
The total number of nodes required for a cluster varies, depending on the organization's needs. However, as a basic and general guideline, have at least a dozen worker nodes and two master nodes for any cluster where availability is a priority.
A Kubernetes cluster that handles production traffic should have a minimum of three nodes. Masters manage the cluster and the nodes are used to host the running applications. When we deploy applications on Kubernetes we tell the master to start our containers and it will schedule them to run on some node agents.
A multi-master setup protects against a wide range of failure modes, from a loss of single worker node to the failure of the master node's etcd service. By providing redundancy, a multi-master cluster serves a highly available system for your end users.
More specifically, Kubernetes is designed to accommodate configurations that meet all of the following criteria: No more than 110 pods per node. No more than 5000 nodes. No more than 150000 total pods.
That means a minimum of 3 master nodes per cluster.
Kubernetes keeps all critical data in etcd, which uses a majority to repair when there is a fault. An instance of etcd runs on each master node. Three is the minimum number of etcds one wants backing a prod-level cluster. Hence, three is the minimum number of masters per cluster.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With