I spent two weeks reading the Kubernetes documentation cover to cover, from the concepts and tasks through the tutorials and API reference. I even read the love letters from engineers who clearly lost their minds somewhere around the CRD specification.
I came away thinking 90% of startups using Kubernetes should not be using it.
You have three developers, a NestJS API, a Postgres database, and maybe a Redis instance. A VPS and a systemd service are enough; container orchestration adds nothing you need. Your deploy script is "git pull and pm2 restart." The infrastructure costs 20 dollars a month and takes an afternoon to set up.
Instead, what I see is: three developers spending two months setting up a K8s cluster on EKS, writing Helm charts, configuring Ingress controllers, debugging DNS resolution between pods, setting up monitoring for the monitoring system that monitors the cluster that runs your single API. Now the infrastructure costs 800 dollars a month, and setup never ends.
"But we need to scale!" Scale what? Your API handles 50 requests per minute. A Raspberry Pi could handle that. A TI-84 calculator could probably handle that. You got bored and wanted to play with cool technology, then dressed that up as a scaling requirement.
"But we need zero-downtime deployments!" You know what else gives you zero-downtime deployments? Two servers behind a load balancer. Or even just a single server with a rolling restart. This has been a solved problem since before Docker existed.
"But we need a service mesh!" Your three-person team has two services that can call each other by hostname. Istio gives your infrastructure engineer job security without making your life better.
The Kubernetes documentation runs to 2,000 pages for learning how to run a container. Docker run takes one command.
Kubernetes is impressive engineering. If you are running hundreds of services at scale with multiple teams, it is the right tool. But if you are reading this and you work at a startup with fewer than 50 engineers, I am begging you to use a VPS with a bash script and a cron job. Free yourself to touch grass. I want infrastructure I can stop thinking about, and Kubernetes demands attention every single day.