Kubernates: An architectural overview

Kubernates is composed by a set of processes running on machines of a network that can communicate each other, those processes can divided…

Kubernates: An architectural overview
Control Plane Architecture

Kubernetes: An architectural overview

Kubernetes is composed by a set of processes running on machines of a network that can communicate each other, those processes can divided into two categories, the control plane processes and ne node processes

Kubernetes Control Plane

The control plane is a collection of software components that manage the cluster, these components can run to any machine of the cluster but usually are run on dedicated controller machines.

  • kube-api-server this process exposes the Kubernetes API, which is the interface to the control plane and the cluster.
  • Etcd is a key/value database which Kubernetes API uses to keep the configuration and the state of the cluster, Etcd has high availability configuration options.
  • kube-scheduler is the process which decides the optimal node for a container to start.
  • kube-controller-manager runs a collection of multiple controller utilities in a single process. Essentially this process watches the shared state of the cluster through the kube-api-server and makes changes attempting to move the current state towards the desired state, some of those utilities are the replication controller, ends-point controller, namespace controller and service accounts controller
  • cloud-controller-manager provides an interface between kubernetes and various cloud platforms, it is only used when using cloud based resources alongside kubernates.

Kubernetes Nodes

Nodes are the machines where the containers run and managed by the cluster, a cluster can have any number of nodes.

Various node components manage containers on the machine and communicate with the control plane

kubelet is a Kubernetes agent that runs on each node, its purpose is to communicate with the control plane and ensures that the containers are executed on the node as instructed by the control plane, kubelet also reports container status and other needed information about the containers to the control plane.

container-runtime is the actual runner of the containers, Kubernetes supports many container runtimes with the most popular being docker and containerd

kube-proxy provides internetworking between containers and manages the network schemes of the containers towards / from external networks

How control plane interacts with node processes

In this diagram we can see that the common point that the control plane interacts with the cluster nodes is the kube-api-server.

Complete diagram

I hope you found this short presentation useful :).

Join Medium with my referral link - Konstantinos Patronas
As a Medium member, a portion of your membership fee goes to writers you read, and you get full access to every story…