04

Why Kubernetes Is Used

Video: Day 4/40 — Why Kubernetes Is Used — Simply Explained • https://www.youtube.com/watch?v=lXs1VCWqIH4 • Duration: ~8 min

Key terms

TermMeaning
OrchestratorSystem that schedules, scales, and heals containers across nodes
PodSmallest deployable unit (one or more containers)
Desired stateThe state you declare in manifests
Actual stateWhat is really running in the cluster
ReconciliationControllers driving actual state toward desired state
Self-healingAutomatic replacement of failed pods
ScalingAdding or removing replicas to match load

Problem & solution

Docker runs containers on a single host with no built-in self-healing, scaling, or zero-downtime updates. Running many containers across many machines by hand doesn't scale and can't survive a failed container or a dead host.

Solution: Use an orchestrator that schedules, self-heals, scales, and load-balances containers across many machines automatically, instead of doing it by hand.

The analogy

Picture a busy harbor where a single dock-hand tries to park every arriving ship by hand: he cannot watch them all, tug in a replacement for one that sinks, or open extra berths when traffic spikes. A port authority instead orchestrates thousands of ships automatically, assigning berths, replacing lost vessels, and adding capacity on demand. Plain Docker on a single host is that lone dock-hand, while Kubernetes is the port authority that schedules, heals, and scales your containers across many machines.

Where this fits in the cluster

The same cluster entities appear in every day's notes; the <== marks what this day touches.

The problem with plain Docker at scale

Docker runs containers on one host. In production you need many containers across many machines, with self-healing, scaling, and zero-downtime updates. Doing this by hand does not scale.

What breaks without an orchestrator (ASCII)

On a single Docker host there is nobody to restart crashed containers, scale on demand, or survive a dead host.

What Kubernetes gives you

Kubernetes adds the production-grade capabilities that plain Docker lacks.

  • Self-healing: restarts/replaces failed containers & nodes.
  • Horizontal scaling: add/remove replicas on demand.
  • Service discovery + load balancing: stable names, spread traffic.
  • Automated rollouts/rollbacks: ship safely, revert fast.
  • Config & secret management: decouple config from images.
  • Storage orchestration: attach volumes automatically.

Desired vs actual state (the core idea)

Kubernetes runs a control loop that constantly compares what you asked for against what is actually running, and fixes the gap.

You describe the end state; Kubernetes continuously works to make reality match it. This is "declarative" management.

When do you NOT need Kubernetes?

  • A single small app / hobby project -> Docker or a PaaS is simpler.
  • K8s adds real operational complexity; use it when scale/resilience demands it.

End-to-end flow

The control loop that keeps reality matching your declared state, healing and scaling automatically.

Key takeaways

  • Kubernetes = container orchestrator for many hosts.
  • It enforces a desired state via continuous control loops.
  • Core wins: self-healing, scaling, rollouts, service discovery.

Checklist

  • [ ] Can explain self-healing and desired-state in one sentence each
  • [ ] Understand why single-host Docker is not enough at scale