Kubernetes is a fantastic product that I always enjoy, but there are some moments where it is either overkill or just not helpful to systems. For the sake of this discussion Kubernetes, Fargate, Cloud Run, and Fly.io are all being dumped into the same category. This is primarily a discussion of some reasons that it is still nice to just use a VM rather than containerization.
Whenever I can just run something directly on a system troubleshooting always seems to be easier. Just grabbing items or logs before the container restarts and the data is dumped. There are ways around this, but it still remains one of the main reasons it is nice to not use Kubernetes.
So we all use various Open Source Applications. Let’s be real some of them are more so just meant to run as a service on a system or they have a nice bash script installer. Running these directly on a VM just tends to make life a little easier and smoother.
This can also be helpful since often times most of the troubleshooting information is meant for just running directly on a VM. Plus using a hacked-together docker container or even one that someone else built can be frustrating and not very fruitful.
Kubernetes can be difficult to manage at times. There is a lot of other items that need to be setup that is super worth it for an enterprise deployment but for a small open source app you want to run the hassle is questionable at best. Throwing a docker container on a VM with an NGINX proxy in front of it can just be super easy and accomplish what is needed.
The biggest thing with all of this is that I don’t hate Kubernetes. I work with it constantly and have written operators and everything for it. The problem is that so many times it is spun up and is just completely unnecessary. I love a good home lab but when you spend the entire time setting up Kubernetes and fighting it then you lose out on so many other parts.
The takeway I want to provide is trying to find the right solution to the problem. Kubernetes could absolutely be the answer but just throwing it on a VM could also be a valid answer. It might be better to start at one and migrate to another as the needs grow in an organization. Don’t take a solid POC for granted as you can learn a lot from it.