Kubernetes is an open-source platform for automating the deployment, scaling, and management of containerized applications. It is designed to help developers quickly and easily create, deploy, and manage applications in a multi-node cluster.
Google Open Sourced Kubernetes project in 2014 and till now it is maintained by Cloud Native Computing Foundation (CNCF). Huge shout-out to the CNCF community which has a large landscape of cloud-native open-source projects.
Kubernetes is also called "K8s" (pronouns Kate's) because there are 8 letters in between the K & S letters.
The architecture of Kubernetes is composed of several components that work together in a Kubernetes cluster, which are mentioned below.
The Control Plane: Control Plane is previously known as the master node. The Control plane is the central control panel of the cluster. It is responsible for maintaining the overall state of the cluster and coordinating the activities of the worker nodes. The control plane consists of several components such as the API Server, Scheduler, Controller Manager, etcd.
The API Server: The API Server is the central management point of the cluster. It exposes a RESTful API that allows clients to interact with the cluster. This includes creating, updating, and deleting resources in the cluster.
The Scheduler: The Scheduler is responsible for scheduling pods to run on the worker nodes. It uses various algorithms and policies to decide where to run pods, based on factors such as available resources, network topology, and other constraints.
The Controller Manager: The Controller Manager is responsible for maintaining the desired state of the cluster. It does this by continuously monitoring the cluster and making necessary changes to ensure that the cluster stays in the desired state.
The etcd: etcd is a distributed key-value store used to store the configuration data of the cluster. It provides a consistent view of the cluster state, making it possible for the other components of the Master Node to access and update the cluster state as needed.
The Worker Nodes: Worker Nodes are the machines that run the containers of the applications. They receive instructions from the Master Node and run the containers as specified.
The Pods: Pods are the smallest and simplest unit in the Kubernetes object model. A pod contains one or more containers that run the same application. Pods provide a way to manage the resources required by the containers and ensure that they are isolated from one another.
In conclusion, Kubernetes's well-designed architecture allows for scalable and robust management of containerized applications. The Master Node, API Server, Scheduler, Controller Manager, etcd, Worker Nodes, and Pods all work together to ensure that applications run smoothly and efficiently in a multi-node cluster.
Kubernetes has very well-maintained documentation from which you can learn more about k8s components and other concepts. Check it out here - Kubernetes Docs
❤️Thank you very much for reading ❤️
If you find the blog useful don't forget to like, share, and comment.
If I miss out on anything feel free to comment
Feel free to comment your views in the comment section.
Connect with me on Twitter
Happy Learning 😊!