Skip to main content

Kubernetes Architecture

A working Kubernetes cluster consists of two main types of components: the Control Plane and the Worker Nodes.

Control Plane Components

The Control Plane is the brain of the Kubernetes cluster. It is responsible for making global decisions about the cluster (e.g., scheduling) and detecting and responding to cluster events.

  • API Server: The API server is the front end for the Kubernetes control plane. It exposes the Kubernetes API, which is used by external users to interact with the cluster and by internal components to communicate with each other.
  • etcd: A consistent and highly-available key-value store used as Kubernetes' backing store for all cluster data.
  • Scheduler: The scheduler watches for newly created Pods that have no assigned node, and selects a node for them to run on.
  • Controller Manager: The controller manager runs controller processes. These controllers are responsible for regulating the state of the cluster. For example, the Node controller is responsible for noticing and responding when nodes go down.

Worker Node Components

Worker nodes are the machines (VMs, physical servers, etc.) that run the containerized applications. Each worker node is managed by the Control Plane.

  • Kubelet: An agent that runs on each worker node in the cluster. It makes sure that containers are running in a Pod.
  • Kube-proxy: A network proxy that runs on each worker node, implementing part of the Kubernetes Service concept. It maintains network rules on nodes and performs connection forwarding.
  • Container Runtime: The container runtime is the software that is responsible for running containers. Kubernetes supports several container runtimes, such as Docker, containerd, and CRI-O.