Nothing 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)