Hello, readers! In this article, we will be focusing on Kubernetes and its Components in detail. So, let us begin! 🙂
Recommended read – Kubernetes Pods – Complete Intro
Table of Contents
What is Kubernetes?
Before diving deep into the concept of Kubernetes, let me help you with an overview of Docker and how Kubernetes helps in managing docker services.
Docker is a PAAS that offers us containers to package and run your application over a host Operating system. Even though we can have our applications containerized and set them running over host OS, we do require a strong infrastructure to support and manage the services running underneath.
This is when Kubernetes comes into the picture.
Kubernetes, also known as k8, is a container orchestration software. It manages and supports the services of the containers and orchestrates the underlying processes. It orchestrates the containerized deployments of workloads as well as services, offers ways to have the network issues sorted and orchestrated.
Kubernetes offers us an infrastructure that leads and ensures resilience and takes care of the management of the applications to have negligible downtime from a service perspective. Further, all the scaling, as well as failover of the applications, is taken care of by the Kubernetes framework.
Let us now focus on the components of Kubernetes that helps it achieve the orchestration for the containerized applications.
Components of Kubernetes
There are 5 components of Kubernetes:
- Kubernetes Cluster: When we have Kubernetes set up on our systems, we get a cluster. A Cluster can be considered as a set of worker machines or VMs, called nodes, that would run the containerized applications. Every cluster node has at least a worker node in it and a manager node.
- Pods: The smallest unit of deployment of an application. It is ephemeral in nature.
- Worker nodes: The worker nodes i.e. the worker machines or VMs host and runs the pods of the deployed workload on them.
- Workloads: The application-related deployment that needs to bind the services and other features to the application is configured by workload.
- Control Plane (explained further later): The control plane manages the worker nodes, pods, and all the communication between the network and services.
- Node components: These components run actively on every node within the cluster to ensure the orchestration of the running pods and services.
1. Components of k8 Control Plane
Let us have a look at the components of Kubernetes Control Plane.
- etcd: It acts as a persistent storage and stores all the cluster level data into it.
- kube-apiserver: It is the front-end of the control plane and it configures the instances or workloads and scales them horizontally.
- kube-scheduler: It encounters and monitors the creation of Pods that are unassigned to nodes. Further, it is responsible for assigning nodes to the pods to run on.
- kube-controller-manager: It manages all the controller processes such as node controller, endpoint controller, etc.
2. k8 Node components
Below are the components of the Nodes in Kubernetes:
- kubelet: It is a software agent that runs continuously on every node of the cluster. The kubelet ensures that the containers run in Pods in a healthy manner.
- kube-proxy: It maintains the networking rules and protocols on the nodes. It is a network proxy that runs on each node in the cluster to ensure seamless and secure networking.
- Container runtime: It runs on every node and manages the running containers.
The tool offers some interesting features for use in containerization of applications. Here’s a small list of those features
- Routes service traffic
- Easy deployment and management of secret and configuration
- Orchestrates the storage
- Allows horizontal scaling
- Automated rollbacks and rollouts of the applications
By this, we have come to the end of this topic. Feel free to comment below, in case you come across any question. For more such posts related to the latest tech stack, Stay tuned with us.
Till then, Happy Learning!! 🙂