Modern backend systems often run many services across many machines. Each service needs placement, health checks, rollout controls, service discovery, capacity limits, and a way to recover when nodes or containers fail.
Kubernetes is a common control plane for running containerized workloads when those operational requirements become too large to manage with ad hoc scripts or a single-server setup.
Kubernetes (often abbreviated as K8s) automates deployment, scaling, service discovery, rollout control, and recovery for containerized applications across clusters.
When a container crashes, the kubelet can restart it according to the pod's restart policy. When a node fails, controllers create replacement pods elsewhere.
When traffic grows, Kubernetes can increase replicas if autoscaling metrics and cluster capacity are available. When you deploy a new version, it can roll out gradually and keep traffic away from pods that are not ready.
For interviews, focus on when Kubernetes is justified, how the core abstractions fit together, which failure modes it handles, and where it adds operational complexity.
Think of the handoff this way: Docker gives you a container image and runtime; Kubernetes decides where replicas run, how they are exposed, how they roll out, and how failed containers or nodes are replaced.
The diagram shows how a control plane stores and acts on desired state while worker nodes run the actual pods, and how kubectl apply flows from the API server down to a running container.