K0s: The New Itty-Bitty, Vanilla Kubernetes Distro
While adding extensions to the Lens Kubernetes IDE, the Mirantis Lens IDE developer team decided they needed an ultra-lightweight Kubernetes distro. So, programmers being programmers, they made one of their own: k0s.
“We wanted to create a modern, robust, and versatile base layer for various use cases where Kubernetes is in play. Something that leverages vanilla upstream Kubernetes and is versatile enough to cover use cases ranging from typical cloud-based deployments to various edge/IoT types of cases,” said Jussi Nummelin, Mirantis’ senior principal engineer, and k0s co-founder. “Leveraging our previous experiences, we really did not want to start maintaining the setup and packaging for various OS distros. Hence the packaging model of a single binary to allow us to focus more on the core problem rather than different flavors of packaging such as DEBs, RPMs, and whatnots.”
That’s a zero, by the way, not a capital letter O. Why zero? Because it’s meant to reduce developer friction to zero. K0s is distributed as a single binary with no host operating system dependencies besides the kernel. It does not require a specific host operating system distribution, or additionally installed packages. Looking forward, any vulnerability or performance issues will be fixed in the k0s distribution directly.
Its features include:
- A single static binary
- Kubernetes 1.19
- Control plane storage options:
- SQLite (in-cluster)
- etcd (in-cluster, managed, default)
- MySQL (external)
- PostgreSQL (external)
- CNI providers
- Calico 3.16 (default)
- Custom (bring-your-own)
- Control plane isolation:
- fully isolated (default)
- tainted worker
- Control plane — node communication
- Konnectivity service (default)
- Metrics-server 0.3
- Custom roles\profiles for worker nodes
Its developers say k0s drastically reduces the complexity of installing and running a fully conformant Kubernetes distribution. New Kube clusters can be bootstrapped in minutes. Anyone, they claim with no special skills or expertise can easily get started.
For those who aren’t beginners, it also works hand-in-glove, as you’d expect, with Lens. This helps experienced developers with visualization and Kubernetes clusters control with a rich, graphical IDE.
K0s’ target audience is anyone who needs to easily run production-grade Kubernetes anywhere, for anything. From a developer on their desktop quickly trying something out, to DevOps deploying massive scale production clusters. Using the same distro ensures your code always works the same way as it progresses from development to production
There are other lightweight Kubernetes distros of course. Canonical‘s MicroK8s quickly comes to mind. But, its team thinks k0s stands out from the pack because it’s the only distro without host OS dependencies and scales from local dev clusters to massive deployments.
Nummelin sees k0s as the only open-source Kubernetes distribution you’ll ever need from your laptop to private data center clusters (on bare metal or virtual machines) hybrid cloud clusters. Natanael Copa, the Alpine Linux founder and Mirantis engineer, added, “k0s makes it very simple to run the same Kubernetes distro as a simple single-node cluster on your own laptop, as you run in production in the cloud.”
Of course, it’s early days yet. Some of these goals are more aspirational than runnable. As the programmers say on the k0s GitHub site, “We’re still on the 0.x.y release versions, so things are not yet 100% stable. That includes both stability of different APIs and config structures as well as the stability of k0s itself. While we do have some basic smoke testing happening we’re still lacking more longer running stability testing for k0s based clusters. And of course, we only test some known configuration combinations.”
That said, “With the help of the community we’re hoping to push for 1.0.0 release out in early 2021.” If that were just a group of Joe Random Developers, I’d be inclined to wish them good luck and continue on my way. But, the Lens team, Nummelin, and Copa know their stuff. This Kubernetes distro deserves your attention.