Kubernetes doesn’t add features.

It removes operational responsibility.

In Episode 1, the system worked.

Jobs were accepted.

Logs looked clean.

Nothing crashed.

And yet — nothing progressed unless I was watching.

If the worker died, I restarted it.

If I needed scale, I did it manually.

If something stalled at 2 AM… that was my problem.

That’s not a scaling problem.

That’s an operations problem.

This episode is about removing that burden.

This is not a Kubernetes tutorial

I’m not here to teach YAML tricks.

I’m not selling Kubernetes as magic.

Kubernetes doesn’t:

  • Fix bad code

  • Design your system

  • Prevent bad decisions

What it does is very specific:

You describe what should exist.

Kubernetes keeps trying to make reality match that.

That’s it.

And that turns out to be enough.

The first failure matters more than the success

In Episode 2, I deploy the same system from Episode 1:

  • Same API

  • Same worker

  • Same Redis hostname

  • Same code

And it fails immediately.

Not because Kubernetes broke anything —

but because it refused to hide assumptions.

In Docker Compose, Redis “just existed.”

In Kubernetes, nothing exists unless you declare it.

That error is the lesson.

Compose didn’t make your system simpler.

It made it opaque.

Kubernetes didn’t fix the app

It fixed the assumptions

Once Redis is declared properly:

  • Service discovery becomes explicit

  • Dependencies become visible

  • Failures become obvious

Same code.

Same logic.

Different outcome.

Not because Kubernetes is smarter —

but because it’s stricter.

The moment that changes everything

I delete the worker pod.

I don’t restart it.

I don’t touch anything.

Kubernetes notices the gap —

and fixes it.

No scripts.

No babysitting.

No heroics.

That’s the real value proposition.

Scaling without pretending

In Docker Compose, “scaling” felt like effort.

In Kubernetes, it’s a statement:

Three workers should exist.

Kubernetes makes it true.

That’s not convenience.

That’s removing humans from the failure path.

The honest takeaway

Kubernetes didn’t make this system smarter.

It made it less fragile.

I still own:

  • The code

  • The data

  • The consequences

What I no longer own:

  • Restarting containers

  • Chasing logs

  • Pretending manual fixes are a strategy

That’s the real win.

🔧 Want to think like production engineers do?

If you want direct feedback on how you reason about systems:

If you want to practice on systems that look healthy but aren’t:

No tutorials.

No hand-holding.

Just real failures.

▶️ Watch Episode 2

🎥 First Contact with Kubernetes
“I Don’t Want to Babysit Containers Anymore”

👉 Watch here: https://youtu.be/JdsXaePLd60?si=P_9xLhI-SClQG9aQ

This series is about earning Kubernetes, not adopting it because it’s trendy.

What’s coming next

In Episode 3, we’ll make this worse:

  • Health checks that lie

  • Crash loops that look healthy

  • Autoscaling disasters

Kubernetes doesn’t prevent bad decisions.

It amplifies them.

See you in Episode 3.

Arbaz

Keep Reading