I’ve been sitting on this post for a few weeks because I know it’s going to be controversial in certain circles. But after our Q4 infrastructure review, I can’t stay quiet anymore.
The Numbers Don’t Lie
The 2026 Cloud Native Computing Foundation survey landed last month and the headline finding is stark: 88% of organizations report rising Kubernetes total cost of ownership year over year, with 42% citing cost as their primary infrastructure pain point — up from 31% in 2024. This isn’t a fringe complaint from startups running hobby clusters. This is enterprise-scale feedback from organizations that bet big on Kubernetes and are now reckoning with the bill.
And when people say “cost,” they don’t just mean the EC2 or GKE compute bill. That’s actually the part you can see and optimize. The real costs are the ones that never show up on a single invoice.
The Hidden Cost Iceberg
Here’s what “running Kubernetes” actually costs beyond compute:
- Dedicated platform engineering teams. You can’t run K8s without at least 2-3 engineers whose full-time job is keeping the platform healthy. At senior SRE salaries, that’s $500K-$800K/year before you deploy a single application.
- Training and onboarding. Every new engineer needs weeks to become productive with your K8s setup. Helm charts, custom operators, networking policies, RBAC — the learning curve is a cliff, not a slope.
- Security hardening. Pod security standards, network policies, secrets management, image scanning, admission controllers — each one is a project, not a task.
- Upgrade cycles. Kubernetes releases every four months and end-of-lifes versions aggressively. Each upgrade is a multi-week project involving testing, compatibility checks, and the occasional 3am incident.
- Networking complexity. Service mesh, ingress controllers, DNS, load balancing — we’ve spent more engineering hours debugging Kubernetes networking than building features in some quarters.
Our K8s Journey: A Case Study in Complexity Creep
Three years ago, we migrated to EKS with 12 microservices. It felt manageable. Today we’re running 85 services on Kubernetes with a 4-person platform engineering team dedicated to keeping it all running. Our annual K8s-related costs — compute, platform team salaries, tooling licenses (Datadog, PagerDuty, Teleport, ArgoCD) — add up to roughly $1.2 million per year.
For a mid-stage SaaS company, that’s a significant chunk of our engineering budget. And the honest question I keep asking myself is: do we need all of this?
The Alternatives Are Getting Serious
A few years ago, suggesting anything other than Kubernetes for container orchestration would get you laughed out of the room. That’s changing:
- HashiCorp Nomad — simpler operational model, handles 80% of orchestration use cases with 20% of the complexity. I’ve talked to three CTOs this quarter who are running Nomad in production and loving it.
- Google Cloud Run — serverless containers that scale to zero. No cluster management, no node pools, no upgrade cycles. You push a container and it runs.
- AWS App Runner — Amazon’s answer to Cloud Run. Still maturing but the simplicity is compelling.
- Fly.io — interesting for edge deployments and teams that want container orchestration without the Kubernetes overhead.
And here’s one that surprised me: Docker Swarm is having a quiet renaissance. I’ve heard from multiple teams going back to Swarm for straightforward web service deployments. As one engineer put it to me: “We don’t need a rocket ship to deliver pizza.”
My Contrarian Take
I’ll say it plainly: Kubernetes is the right choice for maybe 20% of companies. The other 80% adopted it because it was the “industry standard,” because it looked good on job postings, and because conference talks made it seem like the only serious option. Those companies are now paying a complexity tax that compounds every quarter.
The Migration Trap
Here’s the catch, and it’s a big one: once you’re on Kubernetes, the ecosystem lock-in makes leaving extraordinarily expensive. Helm charts, custom operators, Istio service mesh configurations, ArgoCD GitOps pipelines, Prometheus monitoring stacks — every tool in the CNCF landscape is another anchor keeping you on K8s.
We’re not moving off Kubernetes tomorrow. But I’ve started a working group to evaluate which of our services could be migrated to Cloud Run or a simpler platform without the K8s overhead.
Has anyone here successfully moved OFF Kubernetes? What did you move to, and what was the migration experience like? I’d especially love to hear from teams that went from K8s to something simpler and don’t regret it.