k3s is a lightweight, CNCF-certified Kubernetes distribution originally built by Rancher Labs (now SUSE). It ships as a single ~60MB binary that bundles the API server, scheduler, controller manager, kubelet, kube-proxy, containerd, runc, and CNI plugins — installable with a one-line curl | sh script that also sets up a systemd unit.
The interesting design choice is Kine, a shim that lets k3s speak the etcd API to a SQL backend. By default it uses SQLite, which removes etcd’s disk-IO sensitivity and lets single-node clusters run comfortably on a Raspberry Pi. For HA you can switch to embedded etcd, external PostgreSQL, MySQL, or real etcd. k3s also strips out legacy in-tree cloud providers and alpha features to shrink the binary, and bundles Traefik as the default ingress controller, ServiceLB (klipper-lb) as a LoadBalancer implementation, local-path-provisioner for PVs, and CoreDNS — all of which can be disabled with --disable.
Compared to k0s, k3s is more opinionated and slightly more patched: the single binary does a bit more “magic” out of the box, and SQLite-as-datastore is a workflow nobody else in the distribution space offers. It is the default Kubernetes in Rancher, K3OS/K3s cluster launcher tools, and is the foundation of RKE2 (which swaps SQLite for etcd and adds FIPS/hardened defaults).