While I don't have extensive experience with using Kubernetes beyond K3S on a simple 3 server setup from Hetzner. The setup for me was kind of a pain in the ass, it was definitely an experience and I definitely would do it again because I am a masochist for pain. While there was no good reason to use Kubernetes because everything I host on my personal servers is not mission-critical and can definitely afford some downtime if anything ever goes wrong.
I followed the documentation to the best of my ADHD brain, which means I skipped around parts and probably screwed up a lot of it several times. I recreated the VM several times in order to fix some issues that I caused for myself which wouldn't have happened if I actually followed the documentation and not just go off and do my own thing. Granted I also am not very familiar with a whole bunch of networking terminology, so this could have contributed to a lot of the difficulties I experienced.
Beyond my own problems, the setup was simple enough and within maybe 30 minutes to an hour, I had everything all set up with Rancher helping me manage all the servers. If you do decide to set up a small K3S cluster I very much recommend also setting up Rancher, not only for the ease of use it gives you but for also the pretty GUI Rancher has. I personally love looking at the statistics on Rancher seeing everything presented in a nice format in front of me.
After I had the cluster setup, everything worked beautifully for all the deployments and projects that I had on it. Each deployment was efficiently deployed on the servers paying attention to not overload each server if the server couldn't handle it.
With Rancher deployed it also hands you an AppStore-like experience with Helm Charts. With Helm Charts you are able to easily deploy stuff like Minecraft servers, databases, and various other open-source projects with a simple point and click deployment-like experience. If an open-source project is actively maintained, the odds are high that there is a helm chart for it.
If you are able to get past the painful setup experience (experience may vary), A nice simple K3S cluster will likely be more than enough for your needs. Odds are also high that this is entirely overkill for your project such as mine was.
One final point is that a Kubernetes cluster will always be more expensive than a simple docker server.
Docker compared to Kubernetes is a simpler solution and what I would recommend to probably 99% of all side projects if you don't anticipate it getting a large amount of traction. if you do anticipate a large amount of traction also, Docker offers a solution like Docker Swarm, while not as great as Kubernetes, it should be more than enough to cater to your needs.
Setting up docker is such a simple experience, require only a few terminal commands to completely have it set up and running. All of this, depending on your server or personal internet connection speed, should be done within 10 or so minutes. Compared to setting up Kubernetes or K3S, this is an entirely different experience from each other and is so easy and simple that if you need to containerize an application, I would recommend using Docker until you need something as advanced as Kubernetes.
Docker is a fairly simple experience when you get used to Dockerfiles, docker-compose files, and also dockerignore files. If you know YAML, the configuration for these files isn't entirely complicated and can be set up within 20 minutes to an hour depending on how fast you can find what you are looking for in the documentation.
If you are also looking for a Helm Charts click and deploy like experience, several solutions like that exist in the form of Dokku, CapRover and others. These being easier to set up than Rancher like everything else that requires setting up, only required several commands like commands to have it completely set up and running.
While I may not know what the correct solution for your upcoming project will be, Docker and Kubernetes are both great tools that have their own use cases and cater to extremely different needs. Kubernetes is meant for more of an enterprise environment while Docker is meant for everyone who has a computer or server.
You will always have to factor in a cost-to-benefit analysis and go with the tool that best fits you.
Copyright © Brandon-travis.com 2022.