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

Popular posts from this blog

Kubernetes API Server Explained

etcd in Kubernetes: A Quick Guide

Kubernetes Basics