Kubernetes architecture

Main components of K8s

Master Node

API ServerThe API Server communicates with all the components within the cluster.
Key-Value Store (etcd)A light-weight distributed key-value store used to accumulate all cluster data.
ControllerUses the API Server to monitor the state of the cluster. It tries to move the actual state of the cluster to match the desired state from your manifest file.
SchedulerSchedules newly created pods onto worker nodes. Always selects nodes with the least traffic to balance the workload.

Worker Node

Worker nodes are the machines where the containerized workloads and storage volumes are deployed.

There are multiple instances of Worker Nodes, each performing their assigned tasks.

KubeletA daemon that runs on each node and responds to the master’s requests to create, destroy, and monitor pods on that machine.
Container Runtimecontainer runtime retrieves images from a container image registry and starts and stops containers. This is usually a 3rd party software or plugin, such as Docker.
Kube-proxyA network proxy that maintains network communication to your Pods from within or from outside the cluster.
Add-ons (DNS, Web UI..)Additional features you can add to your cluster to extend certain functionalities.
Podpod is the smallest element of scheduling in Kubernetes. It represents a ‘wrapper’ for the container with the application code. If you need to scale your app within a Kubernetes cluster, you can only do so by adding or removing pods. A node can host multiple pods.