DevOps · May 8, 2025

Kubernetes or Not?
How to Actually Make the Decision

Raffael Hühnerschulte · 6 min read

Every few months I get the same question in workshops and team calls: "Should we move to Kubernetes?" And almost every time, the real answer isn't about Kubernetes at all — it's about what problem the team is actually trying to solve.

Kubernetes is an extraordinary piece of infrastructure. It's also one of the most over-adopted technologies in the industry right now. Teams reach for it because it signals maturity, because cloud providers make it easy to click "create cluster," and because everyone else seems to be doing it. That's the wrong reason to run Kubernetes.

The right question It's not "can we run this on Kubernetes?" — that answer is always yes. It's "do we actually need what Kubernetes solves, and are we prepared for what it costs?"

What Kubernetes Actually Solves

Let's be precise. Kubernetes is a container orchestration platform. At its core, it solves a specific set of problems that become painful at a certain scale:

If your team doesn't feel the pain of these problems today, Kubernetes will add complexity without adding value. Simple as that.

The Real Cost Nobody Talks About

When I train teams on Kubernetes, I always start with the total cost of ownership — not in euros, but in engineering attention. A production Kubernetes cluster requires:

For a small engineering team, this can easily represent 20-30% of total engineering capacity, permanently. That's not nothing. That's a person.

Reality check Managed Kubernetes (GKE, EKS, AKS) reduces operational burden significantly — but it doesn't eliminate it. You still need people who understand Kubernetes deeply enough to troubleshoot when things go wrong, and they always go wrong.

A Framework for the Decision

I use a simple decision matrix in workshops. Score your team on each dimension from 1 to 3:

Dimension 1 — Not yet 2 — Partially 3 — Solid
Number of services < 5 services 5–15 services 15+ services
Deployment frequency Monthly or less Weekly Daily or more
Container maturity No containers yet Docker in dev/staging Containers in production
Team K8s knowledge Zero experience One or two people Broad team familiarity
Scaling patterns Stable, predictable load Occasional spikes Frequent, variable load

Score 5–8: Don't run Kubernetes. You'll spend months learning the platform instead of shipping features. A simple container setup (Docker Compose, single-node Docker Swarm, or even a few well-configured VMs) will serve you better.

Score 9–11: You're approaching the point where Kubernetes starts paying for itself. Consider a managed Kubernetes service for one non-critical workload as a learning project. Don't migrate production yet.

Score 12–15: You're likely feeling the pain Kubernetes solves. Evaluate seriously. Start with a managed service, invest in team training, and migrate incrementally — never as a big bang.

What to Use Instead

If Kubernetes isn't the right answer today, you still need to run containers reliably. Here are the patterns I recommend most often:

Docker Compose + a single VM or VPS

For small teams with fewer than 10 services, this is underrated. A well-configured Compose file with health checks, restart policies, and resource limits covers 80% of what most small teams need. Add a reverse proxy (Traefik or nginx), a monitoring stack (Prometheus + Grafana), and you have a production-grade setup with far less complexity.

AWS ECS / Google Cloud Run / Azure Container Apps

If you want managed orchestration without operating a control plane, these are excellent choices. Cloud Run in particular is ideal for stateless services — you pay per request, scale to zero, and never think about nodes. I've seen teams ship 20+ services on Cloud Run and never look back.

Nomad

HashiCorp Nomad is a simpler orchestrator that handles containers, VMs, and raw executables. If your team already uses Vault and Consul, Nomad is worth serious consideration. The learning curve is a fraction of Kubernetes.

When You Do Go Kubernetes

If the matrix points you toward Kubernetes, here's how to start well:

From experience The teams that succeed with Kubernetes are not the ones who adopted it earliest. They're the ones who adopted it with clear intent, invested in education, and migrated incrementally with patience.

Final Thought

Kubernetes is not a destination. It's a tool — a powerful one, with real costs and real benefits. The teams I've worked with that are happiest with Kubernetes are those who adopted it because they felt specific pain it could solve, not because it appeared on a roadmap or a job description.

Take the decision seriously. Be honest about your team's current capacity and expertise. And remember: running boring, reliable infrastructure is always better than running exciting, broken infrastructure.

Want to bring your team up to speed?

I run hands-on Kubernetes training for engineering teams — from first principles through production-grade GitOps. Tailored to your stack, your level, and your real-world workloads.

Get in touch