Kubernetes Architecture
The first step in learning Kubernetes is understanding its high-level architecture.
As we learned in the prerequisites, Kubernetes is a distributed system, which means it consists of multiple components distributed across different servers over a network. These servers can be either virtual machines or bare metal servers.
As a whole, we call it a Kubernetes cluster.
A Kubernetes cluster consists of a control plane and worker nodes.
✅ ๐๐ผ๐ป๐๐ฟ๐ผ๐น ๐ฃ๐น๐ฎ๐ป๐ฒ
The control plane is responsible for maintaining the desired state of the cluster. It is also responsible for node/pod lifecycle management and exposing the cluster API. It has the following key components:
- kube-apiserver
- etcd
- kube-scheduler
- kube-controller-manager
- cloud-controller-manager
✅ ๐ช๐ผ๐ฟ๐ธ๐ฒ๐ฟ ๐ก๐ผ๐ฑ๐ฒ๐
The worker nodes are responsible for running containerized applications. The worker node has the following components:
- kubelet
- kube-proxy
- Container runtime (CRI-O, Docker Engine, Containerd, etc.)
Important Note: These components run on the control plane node as well.
✅ ๐๐ฑ๐ฑ-๐ผ๐ป ๐๐ผ๐บ๐ฝ๐ผ๐ป๐ฒ๐ป๐๐
Additionally, there are add-on components we include in the cluster to extend its functionality and make the cluster fully functional for application deployments.
Here are some common add-ons commonly used in Kubernetes Clusters
- Web UI
- CoreDNS
- Metrics Server
- CNI Plugins (Container Network Interface)
Given that Kubernetes operates in a distributed environment,
Kubernetes ensures this by using mutual TLS (mTLS) certificates for authentication, which not only encrypts the communication but also ensures that all components can securely authenticate each other.
In the upcoming posts, I will cover each component and its significance in detail.

Comments
Post a Comment