“Demystifying Kubernetes Architecture: A Beginner’s Guide 🌐🛠️”

Dileep Reddy
3 min readAug 28, 2023

--

Control plane: The control plane nodes run the control plane agents, such as the API Server, Scheduler, Controller Managers, etcd in addition to the kubelet and kube-proxy node agents, the container runtime, and possible add-ons for container networking, monitoring, logging, DNS, etc.

Control Plane Components:

API Server🤖: It’s like a central control point that listens to your requests and manages all the communication between various parts of your Kubernetes cluster. When you want to do something in your cluster, like create a new application or scale up existing ones, you don’t have to individually talk to each component. Instead, you tell the API server what you want, and it takes care of the rest.

In simpler terms, think of the Kubernetes API server as the brain that processes your requests and orchestrates the actions within your Kubernetes setup. 🧠🚀

Scheduler📆: Think of the Kubernetes scheduler as a matchmaking service for your applications. Imagine you have a bunch of people (your applications) who want to go on dates (run on your cluster’s nodes). Now, each person has their own preferences and requirements (like needing certain resources to run).

The scheduler’s job is to pair up the right people with the right dates based on compatibility and availability. Similarly, the Kubernetes scheduler’s job is to decide which nodes in your cluster should run which applications. It considers factors like how much CPU and memory each app needs, the health of the nodes, and other requirements.

Controller Manager🎮: In a play or movie, you have various elements to coordinate: actors, props, sets, and more. The Controller Manager in Kubernetes is like this manager but for your applications and their desired state in the cluster.

For instance, if you want three replicas of an application running at all times, the ReplicaSet controller makes sure that happens. If one of the replicas goes missing, the Controller Manager will see that and create a new one to maintain the desired number.

Similarly, the Job controller ensures that a task is completed, and the Deployment controller manages updates while keeping the desired number of replicas intact.

ETCD🏦: Imagine you have a shared notebook in a group project. This notebook keeps track of who’s responsible for what, what decisions have been made, and important information everyone needs to know. Whenever someone needs to know the current status of the project or wants to make a change, they refer to this notebook.

In the world of Kubernetes, etcd plays a similar role. It’s a distributed, consistent storage system that keeps track of your cluster’s configuration, state, and metadata. Just like the notebook, it holds important information about your applications, nodes, and their relationships.

So, when you create or update something in your cluster — let’s say you’re adding a new application — Kubernetes writes this information down in etcd. Other parts of the cluster, like the API server and various controllers, can read from etcd to understand what’s going on and make decisions accordingly.

--

--

Dileep Reddy
0 Followers

DevOps enthusiast, writes about kubernetes, Terraform, and AWS Cloud.