In the previous post, I have written the introduction of Kubernetes. I believe you must have read. If you want to get the overview of the Kubernetes basics, please go through the post: Introduction to Kubernetes
In this post, I will discuss the components of Kubernetes.
Kubernetes consists of basically two parts master (Control Plane) & Worker Nodes. Please have a look into the diagram of the Kubernetes Cluster.
Control Plane
The components of the Control Plane (Master ) is used for the global decisions on the cluster. You can set up a multi-master-VM setup (Highly Available clusters). Below are the components of the Control Plane:
1. Kube API Server
2. etcd
3. Kube scheduler
4. Kube Controller Manager
5. Cloud Controller Manager
Kube API Server
It is the frontend of the Kubernetes Control Plane(Master) which exposes the Kubernetes API
etcd
It is a key-value store used for storing the data like the state of the cluster (Master/node/pod). It is important to have the backup plan of this
Kube Scheduler
It keeps an eye on the newly created PODS which is not assigned to any Node. Scheduler helps to assign the PODS to the Node depending upon the below factors:
Resource requirements, hardware/software/policy constraints, affinity and anti-affinity specifications, data locality, inter-workload interference, and deadlines.
Kube Controller Manager
It is a daemon that embeds controllers. It basically does namespaces creation and garbage collection. Includes below four controllers
Node Controller: manages the status of the nodes (creation, deletion, update)
Replication controller: maintains the correct no of pods for every replication controller object in the system.
Service account & token controller: create default amount and API tokens for new namespaces.
Endpoint controller: takes care of the endpoint objects (join PODS and Services)
Cloud Controller Manager
It helps to link the cluster to the Cloud Provider API. Below controllers can have cloud provider dependencies:
Node controller: For checking the cloud provider to determine if a node has been deleted in the cloud after it stops responding.
Route controller: For setting up routes in the underlying cloud infrastructure.
Service controller: For creating, updating, and deleting cloud provider load balancers.
Worker Node/Node Components
It runs on every node, maintaining running pods and providing the Kubernetes runtime environment. Below are the components of the Worker Node/Node:
1. Kube-proxy
2. Kubelet
3. Container runtime
Kube-proxy is a network proxy used in all the nodes on the cluster. Kubelet is an agent runs on each node on the cluster and make sure containers are running in the PODS. It does not take care of the containers which are not created by the Kubernetes. Container runtime makes sure that containers are running. Most common and famous container runtime is Docker.
For additional details have a look into this link https://kubernetes.io/docs/concepts/overview/components/
Hello,
I love cooking. Yes ! you read it right. I love cooking however I am fond of writing technical blogs too.
I work as a Cloud Developer Support Engineer II at DigitalOcean.
I hope my articles helps you to sail out from the Ocean of the technical problems. Also on other hand helps to take a deep dive into different type of technologies.
Powered by Facebook Comments
Leave a Reply