Introduction
k0s is an open-source Kubernetes distribution from Mirantis packaged as a single, statically linked binary (≈ 200 MB) with zero host-OS dependencies. It includes everything you need — kubelet, kube-proxy, containerd, etcd, and CNI — baked into one process, which makes it easy to deploy on anything from a Raspberry Pi to an air-gapped edge server.
What k0s Does
- Ships Kubernetes, etcd, containerd, and a CNI as one signed binary
- Runs as a systemd service or in a container with
k0s docker - Supports single-node, HA (etcd or kine + SQL), and edge topologies
- Uses
k0sctlto declaratively manage clusters over SSH — no Ansible needed - Stable upgrade path: download the new binary, restart the service
Architecture Overview
Inside the single binary k0s embeds the upstream Kubernetes components but swaps in its own supervisor that restarts any child process on failure. The control plane can store state in etcd, kine (SQLite/MySQL/Postgres), or an external etcd cluster, while worker nodes talk to the API server over a built-in Konnectivity tunnel — so private worker nodes can join without opening inbound ports.
Self-Hosting & Configuration
k0s config createscaffolds a YAML manifest with sensible defaults- Pick CNI (kube-router default, Calico supported) in the config
k0sctl applydeploys and upgrades clusters over SSH — idempotent, safe to re-run- Air-gapped bundles:
k0s airgap list-imagesplus registry mirror settings - Control-plane isolation: workloads never schedule to controllers unless you ask
Key Features
- Smallest viable production Kubernetes — no package manager dance
- ARM64 / armv7 first-class — ideal for fleet edge
- Konnectivity built in: worker-to-controller NAT traversal out of the box
- Kine mode lets you use SQLite/MySQL/Postgres instead of etcd for small clusters
- FIPS-validated builds available for regulated environments
Comparison with Similar Tools
- k3s — Rancher/SUSE equivalent; different opinions on embedded components
- MicroK8s — Canonical's snap-based distro; tight Ubuntu integration
- kubeadm — official bootstrap tool; much more assembly required
- RKE2 — Rancher's FIPS-ready distro; heavier than k0s
- Talos Linux — OS + k8s; k0s stays on a standard Linux host
FAQ
Q: Single-node or HA?
A: Both. install controller --single for a dev box; k0sctl for multi-control-plane HA.
Q: Can I run it offline? A: Yes. Export the air-gap bundle and configure a registry mirror in the k0s manifest.
Q: What about Windows workers? A: Supported via the k0s worker installer; control planes remain Linux.
Q: How do upgrades work?
A: Use k0sctl apply with a new version; it does rolling upgrades with configurable concurrency.