One Binary, Any Linux
k0s packages everything needed to run Kubernetes into one statically compiled binary with all dependencies embedded. That single binary deploys identically on Alpine, Red Hat, and Ubuntu. Default batteries are included, but swappable. Want CRI-O instead of containerd? Install CRI-O, point k0s at it, and the cluster runs normally. No per-distro packaging, no dependency resolution at install time.
Control Plane and Worker Plane: A Hard Split
Vanilla kubeadm setups blur the boundary between control plane and workers. k0s draws a hard line. A k0s controller node runs only API server, scheduler, and related processes. No kubelet, no containerd. That separation lets you place the control plane anywhere, even a public EC2 instance, while workers sit on Raspberry Pis in a basement. Workers call home over a reverse tunnel, so the connection direction flips. As long as the worker can reach the controller, the cluster works.
Kosmodrome: Control Planes as Kubernetes Objects
A k0s control plane is a handful of Go processes and a database. Kosmodrome treats that as a first-class Kubernetes workload. It provides controllers that run control planes as pods and services inside an existing cluster. It also ships as a set of Cluster API providers, so you define control planes and full infrastructure as custom resources. The result: hundreds or thousands of clusters managed declaratively, with no VMs required for the control plane.
Recent Releases and Windows Support
The latest releases brought Windows worker support close to parity with Linux. The pattern matches: one extra file, run it on Windows Server, and the node joins the cluster. Other work landed on Helm extensions and surfacing containerd deprecation warnings. The last minor release had 20 different contributors. k0s entered the CNCF sandbox about a year ago and filed an incubation application in November during KubeCon Atlanta.
Notable Quotes
we actually package everything you need to run Kubernetes in a one single binary. It’s statically compiled, comes with all the dependencies embedded. Jussi Nummelin · ▶ 0:17
when you launch a K0s controller node, it’s not going to run kubelet. It’s not going to run even Containerd. Jussi Nummelin · ▶ 1:08
what’s control plane? Couple of Go lang processes and a database of sorts. Why do we make management of that complex? Because it’s not, right? Jussi Nummelin · ▶ 2:07
the last minor release had 20 different contributors contributing. Jussi Nummelin · ▶ 3:58
Key Takeaways
- k0s ships as one statically compiled binary that runs on any Linux distro without modification.
- Hard control-plane and worker separation enables split deployments across cloud and on-prem hardware.
- Kosmodrome manages k0s control planes as Kubernetes pods via Cluster API, removing the VM requirement.
About the Speaker(s)
Jussi Nummelin is a Senior Principal Engineer at Mirantis and a core maintainer of k0s. He has spent roughly ten years building cloud-native infrastructure, predating the term itself. His focus is tooling that brings Kubernetes to a wider range of operators and environments.