Then your entire engineering org just deploys things.
Need per-application network security policies? Done.
Per app IAM roles? Done.
Secrets management? Done.
Role based access control? Done.
Isolate services to different pools of machines? Done.
Per-app live-updating configuration files across your entire fleet? Done.
CPU, memory or arbitrary per-app metric based auto scaling? Done.
Want to run all this on cheap spot instances? Done.
Want path based HTTP routing within your cluster? Done.
Want an easy deployment mechanism with versioning and rollbacks? Done.
Want simple and consistent service discovery across all your servers? Done.
Want to get advanced and build custom resources to manage groups of other resources whilst taking advantage of k8s management plane in a consistent manner that just works with all the other tooling? Done.
Want to do all this fairly consistently on any cloud vendor, or even on prem? Done.
Want a large pool of candidates familiar with this stack? Done and done.
All those lead to non trivial savings, so you can actually focus on your product and not building a crappy version of Kubernetes by stringing together docker compose instances.
But yes, if you’ve got a single developer and you’re deploying by ssh-ing into a single machine and running git pull, it’s definitely overkill.
Except this breaks less than a homegrown solution would with 100,000x less effort fix, build or maintain.
It's a full time position keeping all the plates spinning in their air, but now It's even harder to debug and reason about. I guess it allows you to quickly start up a new project with some boilerplate configurations though. I wonder if there's a term for that, where you defer things perceived to be "hard" to save time up front. Sort of like a credit card you spend but with technical decisions ...
What does that even mean? Where? Across the entire industry? In specific companies? Empirically how much “more resources”?
Conversely you could ask: if k8s is so terrible and building your own version is so simple, why is the market not doing that?
Everywhere I’ve seen that uses k8s does indeed have full time Devops/platform people, but the ratio to the developers they support is far, far lower than homegrown platforms, as is the time to implement new requirements.
Usually these homegrown solutions get to a specific point in time where there isn’t the internal knowledge to maintain them, and the effort required grows too large. At which point they stagnate. Building on a stagnant, homegrown platform that you don’t know how to improve is not great.
You don't. You get less complexity, actually. Even with Docker, a Docker stack in Docker swarm mode is that simpler and easier to maintain and to monitor and to update and roll back than an unexplainable and impossible to justify docker-compose up.
With Kubernetes, it can be even easier than that. Just grab a distro like Ubuntu, instal microk8s and deploy a kustomize script right out of the bat.
Are you really running away from complexity or just irrationally hating on a tool just because you're oblivious to what it provides for free?