Kubernetes Core Components
Kubernetes is a container orchestration system for deploying, scaling, and managing containerized applications.
And Kubernetes is an open-source framework for containerized application management. In a nutshell, we can name it K8.
Docker Swarm can manage Docker containers but only with Docker. However, Kubernetes can run Docker and Rocket (rkt) containers.
The goal of Kubernetes is to host your apps as containers in an automated manner.
Check Out Related Articles
✅ Java Interview Tips for Newbies
✅ Local Git repository
✅ Java multithreading fundamentals
Responsibilities of Kubernetes
- Deployment of containers.
- Container scaling and descaling.
- Load-balancing in containers.
- The discovery of services.
Kubernetes Master Node
The master node is in charge of managing the Kubernetes cluster. It serves as the primary entry point for all administrative tasks or
In charge of controlling, planning, scheduling, and monitoring the nodes in the K8 cluster.
- Api Server
- Schedular
- Controller-Manager
- etcd(Key-value store)
Kubernetes architecture |
API Server
Primary management of the Kubernetes component, responsible for orchestrating all cluster operations.
It exposes the Kubernetes API, which is used by external users to perform cluster administration activities.
The API server is the frontend of the Kubernetes control plane and is designed to scale by deploying extra instances.
Schedular
Communication centre for developers, sysadmins, and other Kubernetes components. Identifies the right node to place the container based on resource requirements. The scheduler watches the pods and assigns them to run on specific hosts.
Controller-Manager
It checks for node failures, tracks worker nodes, tracks replications, and so on at the Kubernetes cluster level.
- Node controller: Notifying when a node fails.
- Replication controller: The replication controller keeps track of the number of pods.
- Endpoint controller: Connects services and pods.
- Replicaset controller: Ensures that pod replication is always active.
- Deployment controller: Provide declarative changes for pods and replica sets using the deployment controller.
etcd
The etcd data store maintains information about the cluster such as PODs, Nodes, Configurations, Accounts, and so on.
- Key value storage facility.
- Keep all cluster data.
Kubernetes saves data in a specified directory structure, with the registry being the root directory.
In a high availability setup, your cluster will have numerous master nodes and multiple etcd instances distributed throughout the master nodes.
Worker Node
- In the Kubernetes cluster, where the application is actually operating.
- pods: Container1, Container2, and so forth.
Docker: Reference can be found here
Node Components
Kublet
Check that the containers are operational and in good condition. Check that the containers are executing in a pod. Containers that were not created by Kubernetes are not managed by it.
When it receives instructions to load a container or pod in the node, it asks the container run-time engine Docker to fetch the necessary image and launch an instance.
The kublet continues to monitor the POD and its containers, reporting to the Kube-API server.
Kube-porxy
Kube-proxy is a process that runs on each Kubernetes cluster node. Its primary purpose is to search for new services, and if a new service is formed, it creates the necessary rules on each node.
Maintains network rules and handles connection forwarding on nodes. A tube proxy can be used to expose worker nodes.