DEV Community

Anil Kumar
Anil Kumar

Posted on

K8S Architecture simplified


Image descriptionNothing is cooler than a simple Architecture explaination of a complex tool!๐Ÿ˜ƒ

Let's dive into K8S Architecture today:

In Kubernetes, first we have a K8S cluster inside the cluster only we perform our actions like creating/deleting pods,Nodes,services..etc. Inside the cluster we have a master node and worker nodes.

Master Node: This is the core component of K8S as it orchestrates the entire resuorces in the cluster. It is present by default where K8S installed.
Note: we can also schedule the pods in the master node as well.

Inside this master Node:
we have 4 components.

1๏ธโƒฃ API Server: It collects the user requirements from the user in the form of .yml files/commands and establish the connection with Kubelet, Scheduler, controller manager and stores the critical information like configMaps,secrets..etc in etcd cluster.

2๏ธโƒฃ Scheduler: It is the component that communicates with the API Server and retrieve the unscheduled pods and then make decision on which Node the pods should run then inform back to API Server and this API Server communicate with Kubelet and perform the action. This process is called as "binding".

3๏ธโƒฃ Controller manager: It always monitor the desired state and actual state of the application and always tries to keep the actual state = desired state.
( ex: if you need 3 pods to run continuously this will ensure 3 pods running.)

4๏ธโƒฃ etcd cluster: It stores all the critical information of the cluster.

Worker Node: This is where the actual actions will be performed.
In this we have 3 components:

1๏ธโƒฃ Kubelet: It communicates with scheduler and perform the actions according to the user requirement. It connects with container engine.
2๏ธโƒฃ Container Engine: It is responsible to run and manage the containers inside the pods.
3๏ธโƒฃ Kube proxy: It assigns IP address to the pods. It plays a crucial role in maintaning network rules.

Inside these nodes we will create pods.

โ“What is Pod ?
Pod: Pod is a smallest deployement unit that hosts our application as containers.

โ“What is Container?
Container: It is a light weight K8S object that hosts our application in the form of Docker Images.

โ“what are Docker images?
Docker Image: It is an immutable resource, it bundles all the dependencies, libraries.. etc that are required to run an application.

Comment down if the explaination needs to be improved.. ๐Ÿ˜€ Happy Learning ๐Ÿ™Œ

Top comments (0)