Kubernetes for Small Teams: When It Makes Sense
Kubernetes solves real problems — but it introduces significant operational complexity. Here's the honest calculus for teams of 2 to 10 engineers.
If you run a team of five engineers and you’re considering Kubernetes, someone at the table has probably already said “we should use K8s” and someone else has probably said “that’s overkill.” Both of them are right, depending on what you’re optimizing for.
Kubernetes is not a product. It’s an operating system for your infrastructure. Like an OS, it provides powerful primitives — but you’re responsible for understanding and operating them.
What Kubernetes actually gives you
Self-healing workloads. Crashed containers are restarted. Nodes that fail are replaced. Pods get rescheduled on healthy nodes. For stateless services, this is genuinely valuable.
Declarative infrastructure. You describe the desired state — three replicas of your API, resource limits, health checks, environment variables — and Kubernetes reconciles reality to match it. Version control your YAML, and you have an auditable history of every infrastructure change.
Rolling deployments and rollbacks. Zero-downtime deploys are a kubectl apply away. Rolling back a bad release is as fast as pointing the deployment at a previous image tag.
Resource efficiency. Multiple services share a pool of compute, with the scheduler bin-packing pods onto nodes. At sufficient scale, this is meaningfully cheaper than per-service VMs.
The cost
Operational surface area. Kubernetes introduces a control plane, etcd, kubelet, CNI plugins, an ingress controller, cert-manager for TLS, a container registry, and tooling for secrets management. Each component can fail in its own way.
Debugging is harder. Logs are behind kubectl logs. Networking issues require understanding how pod-to-pod routing, services, and ingress interact. What was a straightforward SSH + journalctl investigation becomes multi-layer.
Learning curve is real. A team new to Kubernetes will spend weeks building intuition before they’re operating it confidently. During that time, incidents take longer to resolve.
A practical decision framework
Use Kubernetes if:
- You have more than 8–10 services that need independent deployment
- You have engineers who already know it, or time to learn it properly
- You’re using a managed offering (GKE, EKS, AKS) and don’t want to run the control plane yourself
- Your scale justifies the resource sharing efficiency
Skip Kubernetes if:
- You have fewer than 5–6 services
- You’re a startup validating product-market fit and downtime is acceptable
- Your team is primarily focused on application development and has no dedicated infrastructure engineer
What we use instead (for smaller projects)
For most of our client projects, we start with a single well-sized VM, Docker Compose for local parity, and a simple deployment script. When the project grows — more services, more traffic, stricter uptime requirements — we migrate to a managed Kubernetes service like GKE Autopilot, which offloads the control plane and node management.
The key is not to over-engineer for a scale you haven’t reached. The right infrastructure is the one your team can operate confidently at your current size.
We’ve set up and migrated infrastructure for clients at various stages. If you’re unsure what’s right for your project, get in touch.
More Posts
Hello World: Welcome to the Constelutions Blog
Introducing our blog — a space to share insights on software development, cloud infrastructure, and building reliable systems for the long run.
Building Scalable APIs with Clean Architecture
How separating concerns across well-defined layers keeps your API maintainable as requirements evolve — and the concrete tradeoffs you'll make along the way.