What's the difference between k3 vs microk8's?

Currently I am using microk8’s, and I am really enjoying the experience. The extra control is nice, along with the fact I don’t have to use helm! I looked a bit into k3’s, but I don’t understand the difference? At this point of the development cycle 2021-04-29 the two solutions seem to be extremely similar.

Can someone explain the key different, and why k3’s is so popular?

For me, the snap auto update of patches is a good thing.
But this ofcourse doesn’t suit everyone.

The auto healing of the control plane thru dqlite is something that i also like. When there is a need to allocate a pure worker only node, this is also possible but not without some manual work though.

Both microk8s and k3s are in the lightweight Kubernetes space, trying to simplify the deployment of Kubernetes and able to do so in resource-constrained environments, such as edge and IoT and they support x86 and ARM architectures. Both are CNCF-certified and support a different K8s datastore than the default one (etcd), with MicroK8s supporting dqlite (distributed SQLite) and k3s supporting MySQL, Postgres and SQLite.

MicroK8s’ big differentiator is the fact it’s packaging all upstream K8s binaries in a snap package, providing security patching and upgrades out-of-the-box, while maintaining platform compatibility. K3s is a simple binary that doesn’t benefit from any specific packaging. During its early days, K3s removed some of the upstream alpha features and cloud providers binaries to reduce the footprint, whereas now they try to keep as much of the upstream as possible.

Another big difference is MicroK8s’ minimal-ops UX; everything can be done through a single command (no need to deal with helm and yaml config much) and everything that can be abstracted from the user, is. MicroK8s packages the most popular Kubernetes features for things such as networking, observability, GPU acceleration, etc. These can be enabled/disabled via the microk8s [enable|disable] <feature> command.

k3s is a CNCF sandbox project, so that gives it some additional visibility. The k3s team did a great job in promoting production readiness from the very beginning (2018), whereas MicroK8s started as a developer-friendly Kubernetes distro, and only recently shifted gears towards a more production story, with self-healing High Availability being supported as of v1.19 (August 2020).

1 Like