k0s is a Kubernetes distribution that packages all control plane and worker components into a single binary, enabling cluster deployment with no host dependencies beyond the Linux kernel. It supports a container-native runtime where controllers and workers run inside Docker containers using a single OCI image, and offers declarative YAML configuration for defining cluster topology, host roles, and SSH connection details. The distribution provides pre-built binaries for x86-64, ARM64, ARMv7, and RISC-V architectures, and uses cryptographically signed tokens for secure node enrollment.
The project distinguishes itself through pluggable backends for the datastore, Container Network Interface (CNI), and Container Runtime Interface (CRI), allowing selection among etcd, SQLite, MySQL, or PostgreSQL for state storage, and integration with any CNI or CRI plugin with sensible defaults provided. It supports air-gapped deployment by packaging all required container images and binaries into a single tarball for offline installation, and includes a dedicated CLI tool for automating cluster upgrades, backups, and restores.
The distribution covers cluster lifecycle management from bootstrap to scaling, supporting single-node, multi-node, highly-available, and Docker-based setups. It provides cluster access through kubeconfig retrieval and embedded kubectl, and manages service lifecycle with start and stop commands. The project also supports persistent storage through Container Storage Interface (CSI) integration and enables deployment across cloud, bare metal, edge, and IoT environments.