November 18, 2020

Is Kubernetes too Complex?

People say Kubernetes is too complex, and you fear they’re right.

It feels like at least half of the articles on the internet are about how Kubernetes is overkill for what you need. Sure you can configure Kubernetes so it’s overly complex and difficult for your team to maintain, but that’s like saying you shouldn’t drive a car because the automatic windows might break. Automatic windows are nice, but you can buy a car with a crank for your window if you need simplicity and one less complex system to maintain (heck, you can buy a Jeep with no windows if you want). Likewise you can configure Kubernetes for simplicity—you can run a single service on it, you can configure it so there is very little overhead.

k8s is overkill change my mind

Compare Kubernetes to WordPress for a moment. You can use WordPress out of the box, and on a managed service it’s super easy to deploy, and publish your first blog post within minutes of getting started. But you can also host the open source version yourself, attempt to secure it yourself, upgrade it when necessary, and manage 100 add-ons by hand (there are literally endless WordPress plugins). You can do all of these things, but you probably shouldn’t, because just using it out of the box (somewhere with a great box) is an awful lot easier, and lets someone else worry about the hard parts.

Kubernetes is similar in a lot of respects. You can go through the tutorials on doing it the hard way and build everything by hand, but you probably shouldn’t. Leverage a managed service in the cloud, let them handle the complexity of upgrades and getting everything working on the underlying hardware. Leverage a partner like USNL to help make the configuration smooth and production-ready. 

And hey, at least Kubernetes isn’t in PHP.