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…
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.

I hope you found this short presentation useful :).