Components of Kubernetes

Components of Kubernetes

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/


Powered by Facebook Comments

Be the first to comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.