Published on February 3, 2026
Kubernetes in Production: Lessons from Real-World Deployments
Kubernetes in Production: Lessons from Real-World Deployments
Kubernetes has become the de facto standard for container orchestration. But running it in production is very different from following a tutorial. Here are the pitfalls that surface once a cluster carries real traffic.
Resource Requests and Limits Are Not Optional
The most common issue in new clusters: pods without resource requests. Without them, the scheduler can't make informed placement decisions. Nodes get overcommitted, and everything slows down — or crashes — under load.
Set requests based on observed usage, not guesswork. Use tools like the Vertical Pod Autoscaler in recommendation mode to gather data before committing to values.
Observability Before Scaling
Teams often reach for horizontal autoscaling before they can answer basic questions: What's our P99 latency? Where are the bottlenecks? How much memory does this service actually need?
Invest in observability first. Prometheus and Grafana are the standard stack, but what matters is having dashboards your team actually reads. Alerts should be actionable, not noisy.
Namespaces and RBAC From Day One
It's tempting to run everything in the default namespace during early development. But retrofitting namespace isolation and RBAC policies into a running cluster is painful.
Start with separate namespaces for each environment and service boundary. Define RBAC roles early, even if they feel permissive at first. Tightening permissions is easier than creating them from scratch.
GitOps Makes Everything Reproducible
Manual kubectl apply commands don't scale. We use ArgoCD or Flux to sync cluster state from Git repositories. Every change is auditable, reversible, and reviewable through pull requests.
A bad configuration then rolls back the way any other change does: revert the commit and let the controller reconcile the cluster back to it.
The Honest Truth
Kubernetes is powerful, but it's not free. It demands operational expertise, and the learning curve is real. For small teams running a handful of services, simpler alternatives might be a better fit. But when you need multi-service orchestration, rolling deployments, and infrastructure-as-code — Kubernetes delivers.