Kubernetes Architecture

Kubernetes Architecture

Kubernetes itself is a distributed system. It introduces its own dialect to the orchestration space. Internalizing the vernacular is an important part of success with Kubernetes.


The Kubernetes cluster is the highest level of abstraction to start with. Kubernetes clusters are composed of nodes. The term cluster refers to all the machines collectively and can be thought of as an entire running system. The machines in the cluster are referred to as nodes. A node may be a virtual machine or a physical machine. Nodes are characterized as worker nodes and master nodes. Each worker node includes software to run containers managed by the Kubernetes control plane. Control plane itself runs on master nodes.

The control plane is a set of APIs and software that Kubernetes users interact with. These APIs and software are collectively referred to as master components.


The control plane schedules containers onto nodes.


Scheduling: The term scheduling does not refer to time in this context. Think of it from a kernel perspective. The kernel schedules processors onto the CPU according to multiple factors. Certain processes need more or less compute or have different Quality of Service rules. Ultimately the scheduler does its best to ensure that every container runs. Scheduling in this case refers to the decision process of placing containers onto nodes in accordance with their declared compute requirements.


In Kubernetes containers are grouped into Pods. Pods may include one or more containers. All containers in a Pod run on the same node.


The Pod is the smallest building block in Kubernetes. More complex and useful abstractions come on top of Pods.


Services define networking rules for exposing Pods to other Pods or exposing Pods to the public Internet.



Kubernetes uses deployments to manage deploying configuration changes to running Pods and also horizontal scaling.



Kubernetes is a container orchestration tool. A group of nodes form a Kubernetes cluster. Kubernetes runs containers in groups called Pods. Kubernetes Services expose Pods to the cluster and the public Internet. Kubernetes deployment control rollout and rollback of Pods.