Understanding the Kubernetes Control Plane 101

A layperson’s analogy for my layperson brain

Joe Cardillo

--

Photo by Andy Li on Unsplash

Even though I’ve been working with Kubernetes for the better part of a year, I’ve only recently come across a helpful analogy for understanding the control plane in a way that makes sense in every day (layperson) terms.

It’s the Shipping Analogy. Perhaps more pertinent today with all the shipping delays going on. Either way, let’s dive in.

Ship analogy

There are two main parts to a Kubernetes cluster. The master node and the worker nodes.

The master node is like the dock, which is responsible for all the management, logistics, communications and operations of everything. It’s the control center. It’s where the magic happens.

The worker nodes are like the ships that come into dock to receive and transport containers.

Control Plane Components

There are various aspects to a dock’s operations that allow it to run smoothly. Let’s think of the dock as the master node.

etcd — The dock needs to store information (on paper or digitally) about the ships currently docked, or waiting to dock, what containers are on which ship, what time the containers were loaded, etc.

  • On a Kubernetes master node, this info is stored in etcd, which is a “highly available key-value store”. A key-value store is simply a way of storing information. For example, a key might be the name of the ship (“The Destroyer”) and the associated value might be the containers currently on-board. What’s most important to understand is simply that etcd is where data about the cluster is stored.

kube scheduler — A dock is full of cranes. The crane operators identify the containers that need to be placed on each ship, they identify the right ship for each container based on its size, capacity, the number of containers already on the ship, where it’s going, and what kind of containers each ship is allowed to carry.

  • On the master node, the kube scheduler identifies the right node to place a container on based on the container’s resource requirements, the worker node’s capacity, or any other policies or constraints — such…

--

--