Do You Need Kubernetes in 2026? A Decision Framework
Kubernetes is the right answer for fewer teams than run it. Five questions that tell you whether you need it, and what to run instead when you don't.
Key takeaways
- Most teams with a handful of services and no dedicated platform engineer don't need Kubernetes.
- Managed containers such as Cloud Run, ECS Fargate or Azure Container Apps give you deploys, scaling and TLS with far less to operate.
- Kubernetes earns its cost once you run many services, need its extension ecosystem, or have people to run it.
On this page
Probably not, if you run fewer than about a dozen services and nobody owns infrastructure full time. Kubernetes gives you a platform to build a platform on. If you don't need that second platform, a managed container service gives you deploys, autoscaling and TLS with a fraction of the operational load.
That's an unpopular answer in a field where Kubernetes is on every job ad. Here is how we'd actually decide.
The options, honestly compared
| Option | What you operate | Scales to | Good fit | Where it breaks |
|---|---|---|---|---|
| One VM plus Docker Compose | One server, OS patching, backups | One machine | Side projects, internal tools, early MVPs | No failover; a host outage is an app outage |
| PaaS (Heroku-style, Render, Fly.io) | Almost nothing | Moderate | Small teams shipping web apps | Cost at scale, limited networking control |
| Managed containers (Cloud Run, ECS Fargate, Azure Container Apps) | Images, service config, IAM | High | Most teams with 1-15 services | Fewer extension points, provider lock-in |
| Managed Kubernetes (EKS, GKE, AKS) | Workloads, upgrades, add-ons, policy | Very high | Many services, platform teams, portability needs | Needs people who understand it |
| Self-managed Kubernetes | Everything, including the control plane | Very high | Regulated or on-prem environments | Everything is your problem |
The control plane fee is the smallest cost. EKS charges $0.10 per cluster per hour for standard support as of October 2026, about $73 a month. The real cost is the people: version upgrades every few months, ingress, cert-manager, autoscaler, policy, observability and the debugging knowledge to hold it all together.
Five questions that decide it
- How many deployable services do you run? Under ten, managed containers handle it comfortably. Past twenty or thirty, the consistency of one orchestration model starts paying off.
- Who will run it? If the honest answer is "whoever is free", you don't have a Kubernetes operator. A cluster without an owner degrades quietly until an upgrade breaks it.
- Do you need the ecosystem? Operators for databases, service meshes, GPU scheduling, custom controllers and policy engines are Kubernetes-native. If a requirement depends on one of them, that's a real reason.
- Do you need portability? Running the same platform across clouds or on-prem is a legitimate Kubernetes strength. "We might leave AWS someday" usually isn't.
- What does downtime cost you? A single VM is fine for an internal tool. Customer-facing revenue paths need redundancy, which managed containers give you without a cluster.
If you answered "few", "nobody", "no", "no" and "some", Kubernetes is a cost with no matching benefit yet.
What running without Kubernetes looks like
A managed container service keeps the good habits: immutable images, declarative config, health checks, rolling deploys. Your pipeline still builds an image and deploys it; the target is a service definition instead of a Deployment.
# Deploy a container to Cloud Run: build once, roll out with a health-checked revision
$ gcloud run deploy api \
--image=europe-docker.pkg.dev/acme/apps/api:3f9c2e1 \
--region=europe-west1 \
--min-instances=1 --max-instances=20 \
--set-env-vars=LOG_LEVEL=info
On AWS the same shape is an ECS service on Fargate behind an Application Load Balancer. Either way you get autoscaling, TLS and revisions without upgrading a control plane. For a single box, Compose is still a reasonable production choice, as we found running Docker Compose in production for two years.
The signals that mean it's time to move
Kubernetes stops being overkill when several of these are true at once:
- You're writing glue code to approximate things Kubernetes gives you: service discovery across many services, per-team namespaces and quotas, or custom scheduling.
- You need an operator-based workload, such as a database operator or GPU scheduling, that only exists for Kubernetes.
- You have, or are hiring, at least one person whose job includes the platform.
- Your managed container service's limits on networking, sidecars or job scheduling are blocking real requirements, not hypothetical ones.
When you do move, pick a managed offering and keep the add-on list short. Most cluster pain comes from too many add-ons, not from Kubernetes itself.
Questions people ask
Is Kubernetes overkill for a small team?
Usually, yes. A team of a few engineers with under ten services gets deploys, scaling and TLS from managed containers like Cloud Run or ECS Fargate without the upgrade and add-on work Kubernetes needs. Kubernetes makes sense for a small team only when a requirement depends on its ecosystem.
What can I use instead of Kubernetes?
Docker Compose on a single VM for simple apps, a PaaS such as Render or Fly.io for web apps, or managed containers such as Google Cloud Run, AWS ECS on Fargate or Azure Container Apps for most production services. All of them run standard container images, so moving to Kubernetes later stays possible.
When should a startup adopt Kubernetes?
When it runs enough services that consistency matters, has someone who owns the platform, and needs something only Kubernetes provides, such as operators or portability across environments. Adopting it earlier mostly adds operational work before the business has the scale to benefit from it.
The decision, concretely
- Under ten services and no platform owner? Use managed containers. Revisit in a year.
- A single internal tool or MVP? One VM with Docker Compose and tested backups is fine.
- Twenty-plus services, or an operator-based requirement? Managed Kubernetes, with a named owner and a short add-on list.
- Regulated or on-prem with portability requirements? Kubernetes is the standard answer, and worth the cost.
The call we'd make
Default to managed containers and keep everything container-shaped: images, health checks, declarative config, CI-driven deploys. That keeps the door to Kubernetes open without paying for it before you need it. Move when the signals stack up, not when the job ads do.
Sources
More from DevOps
Explore more articles in this category
Argo CD App Always OutOfSync? Find the Field, Then Fix It
The sync succeeds, the app goes green for a second, then OutOfSync again. Almost always a controller is changing a field Git also sets. How to find it and the three fixes, in order of preference.
Kubernetes HPA Not Scaling? The 7 Causes, in Order
The HorizontalPodAutoscaler is up, traffic is spiking, and replicas won't move. Seven causes in the order we check them, each with the command that confirms it.
GitHub Actions Security: 7 Fixes After the Trivy Compromise
In March 2026 an attacker force-pushed 76 trivy-action tags to an infostealer that read secrets straight out of runner memory. Seven fixes that would have contained it, in the order we'd apply them.
You might have missed
Evergreen posts worth revisiting.