Kubernetes Components

2 min

Key Value Database (KVDB)

In many deployments this is etcd although there are alternatives. It maintains the cluster configuration and state. The Control Plane node(s) query the KVDB to access the parameters for the state of the cluster, pods, nodes, etc…

Controller Manager

The Control Plane component that runs the controller processes.

Example controllers:

  • Job Controller - Watches for one-off tasks and deploys pods to complete those tasks.
  • Node Controller - Watches the nodes and responds when they go down or are unhealthy.

Cloud Controller Manager

Allows you to link your cluster to your cloud provider’s API. The Cloud Controller Manager only runs in the specific cloud provider environment. If you are running on-premesis this will not be deployed.

Example controllers:

  • Route Controller - Sets up routing in the underlying infrastructure.
  • Service Controller - Creates and sets up cloud provided load balancers and other services.

Scheduler

Watches for requests from the API server and assigns them to nodes. It ranks the nodes based on their suitability and schedules the request according to the node best suited to handle it. These ranking take into consideration things like resource availability, affinity and anti-affinity rules, and policy constraints to name a few.

Kubelet

The Kubernetes agent running on every node. Kubelet is responsible for taking instructions from the API Server in the form of PodSpecs and making sure those PodSpecs are healthy and running.

Kube-Proxy

Is responsible for maintaining the network rules on the nodes. It allows communication into and out of the cluster. It uses local operating system packet filtering if it is available otherwise it will forward the traffic itself.