Kubernetes Architecture and Components
Introduction
Welcome to Module 10: Kubernetes Engineering. In this lesson, we will explore the foundational architecture of Kubernetes, the industry standard for container orchestration. Kubernetes provides a declarative platform to automate deployment, scaling, and operations of application containers across clusters of hosts.
Control Plane Components
The control plane’s components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events.
- kube-apiserver: The front end for the Kubernetes control plane. It exposes the Kubernetes API.
- etcd: Consistent and highly-available key value store used as Kubernetes’ backing store for all cluster data.
- kube-scheduler: Watches for newly created Pods with no assigned node, and selects a node for them to run on.
- kube-controller-manager: Runs controller processes (e.g., Node controller, Job controller, Endpoints controller).
Node Components
Node components run on every node, maintaining running pods and providing the Kubernetes runtime environment.
- kubelet: An agent that runs on each node in the cluster, ensuring that containers are running in a Pod.
- kube-proxy: A network proxy that runs on each node, maintaining network rules on nodes.
- Container Runtime: The software that is responsible for running containers (e.g., containerd, CRI-O).