Most startups don’t choose to build a Kubernetes platform.
They drift into it.
This is a story I’ve seen play out in a successful startup team: how Kubernetes shifts from leverage to overhead — and how the cost curve quietly flips when self-service never arrives.
Early stage feels simple.
Infrastructure exists, but it’s not the focus.
Everything fits in a few people’s heads.
At this stage:
No problems yet.
Then growth starts to matter.
Traffic increases. Reliability matters. Someone suggests Kubernetes.
So the team adopts EKS and deploys using raw Kubernetes primitives:
Still no platform team.
Still the same senior product engineers doing infra “on the side”.
And honestly — this phase works.
Infrastructure work is maybe 5–10% of time.
The tradeoff is still clearly positive.
This is where things change — slowly and quietly.
The company grows:
Kubernetes is still running.
But now it’s running through humans, not automation.
You start seeing signs:
The same product engineers are still doing Kubernetes work — but now it’s:
This is the most dangerous phase, because it still looks cheap.
No new headcount was added.
But the cost is no longer flat.
At this point, raw Kubernetes primitives stop being leverage.
Senior engineers spend time on:
You’re paying product-engineer salaries for undifferentiated platform work.
Without abstractions:
Your cluster becomes a historical archive of decisions.
Every deploy, rollback, or infrastructure change has:
Automation has an upfront cost.
Humans have a cost per action.
At scale, that math always loses.
This is where many teams try to fix the pain with:
But guidelines don’t remove work.
They only explain it.
The real issue isn’t bad Kubernetes usage.
It’s that Kubernetes primitives leaked into developer responsibility.
Eventually, the realization lands:
Kubernetes primitives are:
But they are not a developer platform.
They are the implementation layer.
Developers don’t want to deploy:
They want to deploy:
This is where self-service finally enters the picture.
Self-service is not:
kubectlSelf-service means:
“I can deploy, scale, observe, and rollback my service without understanding Kubernetes internals or asking another team.”
That requires:
WebService)Kubernetes primitives still exist —
they’re just no longer exposed.
Starting with raw Kubernetes primitives is not a mistake.
Stopping there is.
Early on:
Later:
The goal isn’t to remove humans.
It’s to stop using them as a deployment mechanism.
“At first, Kubernetes was leverage. Then it became a side task. Eventually, it turned into a full-time job nobody formally owned.”
If this sounds familiar, you’re not behind.
You’re just at the point where Kubernetes stops being a tool —
and starts demanding a platform.
And once self-service exists?
Kubernetes finally becomes boring again.
That’s when it starts paying for itself.