May 12#kubernetes#architecture
The Cost of Premature Kubernetes Adoption
Kubernetes is the default answer to "how do we run our services?" for a lot of teams. But the default answer isn't always the right one — especially when you're small.
What you actually pay for
Running Kubernetes in production is not free, even when the control plane is managed:
- Cognitive load. Every engineer now needs a mental model of pods, services, ingress, RBAC, and the YAML that glues them together.
- On-call surface area. More moving parts means more ways to get paged.
- Tooling sprawl. Helm, ArgoCD, cert-manager, external-dns... the list grows.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
template:
spec:
containers:
- name: web
image: ghcr.io/acme/web:1.4.2
That snippet looks innocent. The operational reality behind keeping it healthy is anything but.
When it's worth it
Reach for Kubernetes when you have multiple teams, multiple services, and a genuine need for self-service deployment. Until then, a couple of boring VMs behind a load balancer will outrun a cluster you have to babysit.
Boring infrastructure is a feature, not a failure.