Container orchestrator comparison
Turns out that lightweight Kubernetes distros do exist. Docker Swarm is still good, though.
As a part of my RTU course, I had to spend some time doing a praxis - where I'd work in a company and do some research. Luckily for me, I was already employed at the time, so I could spend the time exploring various container orchestrators in detail, a question that was relevant for the org in regards to development environments at the time.
What I did
My comparison included the excellent K3s Kubernetes distribution, which is easy to install and get started with. It is developed by the Rancher company, the creators of the similarly named graphical Kubernetes management platform, which still gives Portainer a run for its money.
The other orchestrator that I decided to use was Docker Swarm, which comes out of the box with all Docker installs and also supports the Docker Compose specification, which is far more simple and nice to use in comparison to the Kubernetes manifest YAML format.
For the comparison, I launched similar applications in containers, some running on K3s, others on Docker Swarm and then compared both the resource usage between them, how easy it is to setup CI/CD pipelines, as well as how long each of the environment descriptions are.
What I learnt
In regards to resource usage Docker Swarm won, hands down. While K3s gets close (unlike the more fully featured Kubernetes distros, like RKE), it still falls behind a bit, so for smaller environments Docker Swarm is the solution you need.
In regards to how easy to understand the environment descriptions are, once again Docker Swarm was victorious. Not only that, but you could take almost any
docker-compose.yml example file and with minimal changes get it running in your cluster with node scheduling constraints, whereas with Kubernetes you'd need something like Kompose.
However, in regards to features and the ecosystem around the solutions, it's pretty clear that Kubernetes won the container wars, for better or worse. That's why you'll almost always see it in larger projects, while Docker Swarm will remain as something that hobbyists or smaller pilot projects might take advantage of.