I Stopped Pretending Kubernetes Is Just About Running Containers at Scale
Adil Sher
Author
Two years ago, I deployed my first "production" Kubernetes cluster. It was a disaster waiting to happen, and it didn't even know it. I had pods running, services routing traffic, and everything looked fine until 3 AM when a memory leak took down half the cluster because I never set resource limits. That night, sitting in a cold office in Islamabad, I realized I'd been treating Kubernetes like a glorified Docker wrapper instead of a distributed system that demands respect.
The turning point came when I read about production capstone projects that actually simulate real banking infrastructure with separate environments, proper security boundaries, and incident response scenarios. It hit me: most of us learn Kubernetes by copying YAML snippets from StackOverflow, not by understanding what each component actually does. We don't know what happens between kubectl apply and that container actually serving traffic.
This isn't about becoming a Kubernetes expert. It's about the difference between "it works" and "I understand why it works, and why it might break."
The Gap Between Lab Kubernetes and Real Production
Here's what I was missing: knowing how to write a Deployment is not the same as knowing how to design a production platform. The original capstone project doesn't start with YAML files. It starts with architecture diagrams. That's intentional.
When you're building for a financial company, the scenario in the capstone, you're not just deploying microservices. You're thinking about separation of concerns, blast radius, compliance boundaries, and what happens when things fail catastrophically. A dev environment as a namespace? Sure, cost-effective for learning. But a production banking system in the same cluster as staging? That's a question that should make you uncomfortable.
I realized I was conflating convenience with best practice. Namespaces are cheap isolation. AWS accounts and separate EKS clusters are expensive but proper isolation. The difference matters when you're handling money.
Understanding the Flow, Not Just the Components
The part that genuinely changed how I think about Kubernetes was working through the end-to-end flow: API Server → desired state → Controllers → Scheduler → Worker Node → kubelet → Container Runtime → Networking → Health Checks → Service routing.
Before, I knew these words. I didn't know this sequence. When I had to explain to a junior dev why their pod was stuck in Pending state, I actually had to trace through scheduling decisions instead of guessing. That forced understanding is the difference between cargo cult DevOps and actual engineering.
Resource requests and limits are the clearest example. I used to throw them in because the linting rules complained if I didn't. Now I know: requests are scheduling promises (this is what I need to run), limits are hard boundaries (this is the maximum I'm allowed). When memory hits the limit, the container dies. When CPU hits the limit, it throttles. These aren't abstract concepts, they directly impact whether your application works at 3 AM.
My Take: This Is How People Should Learn Kubernetes
I'm genuinely annoyed that most Kubernetes tutorials don't include this structure. They show you how to write deployments, then leave you to figure out production practices through painful experience.
The capstone approach, building three environments, implementing Helm for templating, using Argo CD for GitOps, configuring probes properly, handling persistent storage, forces you to make decisions. You can't just copy. You have to think about why readiness probes matter differently than liveness probes, why you need startup probes for slow-starting apps, and what happens when they fail.
The incident response simulation is where it gets real. Having to practice recovering from failures before they hit production means you actually know your system.
Would I structure it exactly this way? Probably. My one addition would be earlier emphasis on observability, metrics, logs, traces. You can have perfect architecture and still be blind when it breaks.
What's Missing From My Current Setup
I work with Kubernetes daily, but I've never done this exercise in a structured way. I'm seriously considering building this capstone project myself, not to validate my knowledge, but to find the gaps. I suspect I'll discover blind spots in areas like RBAC policy validation and persistent volume troubleshooting.
The security aspects intrigue me most. How many engineers can explain why their database shouldn't be directly accessible from the application namespace? How many have actually implemented NetworkPolicies that work?
Your Turn
If you're working with Kubernetes in any capacity, ask yourself: could you explain, in detail, on camera, what happens from the moment you press enter on kubectl apply until traffic actually routes through your pod? If that question makes you uncomfortable, you've found your learning path.
Source: This post was inspired by "FINAL KUBERNETES PRODUCTION CAPSTONE Dev Staging Production | Helm | Argo CD | Security | Storage | 10 Production Incidents" by Dev.to. Read the original article