← All posts
2 min read

Why Kubernetes exists (and when you actually need it)

#kubernetes#devops

Welcome to part 1 of Kubernetes from Zero. Before we run a single command, let's build the mental model — because Kubernetes makes no sense until you understand the problem it solves.

The problem: containers don't manage themselves

Docker made packaging apps easy. But the moment you run containers in production, questions pile up:

  • What restarts a container when it crashes at 3am?
  • How do you run 10 copies and spread traffic across them?
  • How do you roll out v2 without downtime — and roll back when it breaks?
  • What moves your containers when a server dies?

You can script all of this. Congratulations — you've built a worse Kubernetes.

What Kubernetes actually is

Kubernetes is a desired-state machine. You declare what you want ("3 replicas of this image, reachable on port 80"), and controllers work continuously to make reality match. That's the whole trick — everything else is detail.

# You declare this...
spec:
  replicas: 3

...and if a node dies taking a replica with it, Kubernetes notices the count is 2 and starts another. Nobody gets paged.

When you don't need it

Honesty time: a personal site, a small API, a startup MVP — these are often better served by a static site, a single VM, or a serverless platform. Kubernetes earns its complexity when you have many services, many teams, or real scaling needs.

Next up in part 2: we get our hands dirty with Pods — the atom of Kubernetes.