Member-only story
Environment for comparing several on-premise Kubernetes distributions (K3s, MicroK8s, KinD, kubeadm)
There are several Kubernetes on-premise distributions. A part of them are lightweight, others use more VMs or physical nodes.
Free link to this article: https://faun.pub/environment-for-comparing-several-on-premise-kubernetes-distributions-k3s-kind-kubeadm-a53675a80a00?source=friends_link&sk=0ef7d2c2b43ad485724b038713cad204
It’s hard to select the best free solution, so I created a make-based development environment on Ubuntu (and partly Windows) to compare them. See the install description here: https://github.com/pgillich/kind-on-dev

The base distribution is the kubeadm in VMs (created by Vagrant) as a production environment.
Other distributions are candidates for developer and CI environment. This distributions are container-based (not VM-based), in order to keep resource consumption low. The developer/CI environment should be similar to production environment as much as possible, in order to catch bugs in early phase and maintain same/similar deployments. Multi-node support and fast cluster cleanup are also important.
MiniKube, Minishift and RedHat CRC are ruled out, because it run in VM, instead of in containers.
There are commercial alternatives, too, for example:
Distributions and components
The environment supports the below distributions:
- K3s, see my earlier article: Setup lightweight Kubernetes with K3s
- MicroK8S, see more details: MicroK8S documentation
- KinD, see more details: KinD documentation
- Kubeadm in VMs (created by Vagrant), see my earlier article: Setup On-premise Kubernetes with Kubeadm, MetalLB, Traefik and Vagrant
The components of the deployments are similar:
- External Load Balancer: MetalLB (except K3s, addon in MicroK8S)
- Ingress Controller: Traefik (built-in K3s)
- Helm
- Kubernetes Dashboard