Most people learn Kubernetes backwards.
We start with:
- Pods
- Deployments
- Helm charts
- Copy-pasting YAML
But Kubernetes was never designed to be “a container orchestrator”.
It was designed as:
An extensible, declarative API backed by control loops.
The Core Idea
Kubernetes works like this:
- You declare desired state (YAML / JSON)
- The API server stores it
- Controllers continuously reconcile reality to match it
- Nothing “runs” just because YAML exists.
- Controllers do the work.
Why CRDs Exist
Kubernetes only knows built-in types:
Pods, Services, Nodes, etc.
CRDs let you say:
“Here is a new type of thing Kubernetes should understand.”
Example:
kind: Backup
But CRDs alone do nothing.
They’re nouns.
Why Operators Exist
Operators are controllers that understand your CRDs.
They turn:
kind: Backup
into:
- Jobs
- Snapshots
- S3 uploads
- Retention logic
They are verbs.
Why Helm Isn’t Special
Helm doesn’t “deploy apps”.
It:
- Renders templates
- Outputs YAML
- Sends it to the Kubernetes API
That’s it.
The intelligence lives inside controllers, not tools.
The Mental Model That Changed Everything for Me
Kubernetes is:
- An API
- A database (etcd)
- A set of controllers
Containers are just one workload type.
Once I understood this:
Operators stopped feeling scary
Kubernetes felt simple (not easy — simple)
And once you see it this way, you stop fighting YAML and start designing operators, CI/CD flows, and observability that actually work at scale.
Top comments (0)