The hater’s guide to Kubernetes
published on 2024/03/07
As I see it, Kubernetes is the best-travelled path if you want all three of these things:
- To run multiple processes/servers/scheduled jobs.
- To run them redundantly and load balance across them.
- To configure them, and the relationships between them, as code.
At its most basic, Kubernetes is just a layer of abstraction that lets you think about a pool of computers if it were one (headless) computer. If that’s your use case, and you can avoid the other parts of it, you can get pretty far.
Some people have told me that #2 is overkill, startups shouldn’t focus on zero-downtime deploys or high availability. But we often do multiple deploys per day, and when our products break, our customer’s products break for their users. Even a minute of downtime is noticed by someone. Rolling deploys give us the confidence to deploy unceremoniously and often.