Skip to content

The Control Plane


The control plane is the Kubernetes brain. It is responsible for managing the cluster's state, scheduling workloads, and maintaining the desired state of applications.

The control plane is composed by several key components which work together to ensure that the cluster operates efficiently.
Control plane

API Server

The API server acts as the "front door" of the cluster.

Every command you run goes through here. It is a REST API that all other components talk to.

You can reach the API server by making an HTTP request to the cluster's HTTPS endpoint, e.g.: https://<API_SERVER_IP>:6443.

CLI utilities

When you issue commands using CLI utilities such as kubectl or helm, you are calling the cluster's HTTPS endpoint under the hood.

The API server is also used by other Kubernetes components such as the Scheduler.

etcd

etcd on it’s own is a fast, lightweight key-value database.

In Kubernetes, etcd stores the entire state of the cluster.

How does Kubernetes store it's state?

When Kubernetes changes a resource, the API server validates the request and persists the resource’s desired state in etcd.

Kubernetes controllers and other components then observe that change through the API server and work to make the cluster’s actual state match the desired state.

Scheduler

The scheduler is responsible for distributing work, (or containers), across multiple worker nodes.

It continuously scans for newly created containers and then picks the best worker node to run them on (based on available CPU, memory, rules, etc.).

Controller Manager

The controller manager runs a collection of Kubernetes controllers. (1)

  1. A controller is a control loop that continuously monitors the state of Kubernetes resources and takes action to move the cluster from its current state toward the desired state, for instance, the node controller is responsible for monitoring the status of existing nodes.