Kubernetes Architecture Overview
In a Kubernetes cluster, the architecture is divided into two main areas: the Control Plane and the Worker Nodes. Each part has distinct responsibilities that help in managing the cluster and running containerized applications efficiently.
Control Plane
The Control Plane is the brain of the Kubernetes cluster, responsible for managing the cluster state, making global decisions (like scheduling), and responding to cluster events (like scaling or updating applications). It ensures the desired state of the cluster is maintained and communicates with the worker nodes to execute tasks
Worker Node
Worker nodes are where the actual applications (pods) run. These nodes host the containers and manage their execution. The worker node is responsible for running the containers, managing local networking, and ensuring containers are running in the desired state.
Components of the Control Plane:
Kube-API Server:
Exposes the Kubernetes API, acting as the central management point for all interactions within the cluster. It validates and processes API requests.
Kube-Scheduler:
Decides which node should run a specific pod based on available resources, constraints, and other factors like affinity rules or taints.
Kube-Controller-Manager:
Ensures the desired state of the cluster is maintained by managing controllers like the replication controller, deployment controller, and others that handle scaling and failures.
etcd:
A highly available key-value store used by Kubernetes to store all cluster data, including configurations, secrets, and the state of various resources.
Components of the Worker Node:
Kubelet:
An agent that runs on every worker node. It ensures that containers are running as expected by interacting with the container runtime and reporting the status back to the control plane.
Container Runtime:
Responsible for running containers. Common container runtimes include Docker, containerd, and CRI-O.
Kube-Proxy:
Maintains network rules and load balances traffic between services and pods, ensuring communication between different pods across the nodes in the cluster.
Pods:
The smallest deployable units in Kubernetes, running one or more containers on a node. Each pod shares the same network and storage resources.
Next we will discuss and view how all these components work together.