Instead of Kubernetes (kubeadm): k3s
For small clusters, run k3s instead of assembling upstream Kubernetes with kubeadm. It is a fully compliant Kubernetes distribution in a single binary of under 100 MB, using about half the memory, with networking, ingress and storage included.
Both are for running Kubernetes on a few servers, at the edge or in a homelab.
Why k3s is better
- k3s ships as one binary under 100 MB and runs a server node on 2 cores and 2 GB of RAM, with agents on 512 MB.
- containerd, Flannel, CoreDNS, Traefik ingress, a service load balancer and local-path storage come preinstalled, where kubeadm leaves each to you.
- k3s uses SQLite by default and also supports etcd, MySQL and Postgres, so a single-server cluster needs no etcd at all.
- The control plane runs as one process that handles certificates and TLS, which removes much of the setup work.
When to keep Kubernetes (kubeadm)
Keep upstream Kubernetes with kubeadm, or a managed service such as EKS or GKE, for large production clusters, when you need full control over each control-plane component, or when your organisation standardises on a specific distribution.
Switching
Workloads move unchanged, since k3s passes Kubernetes conformance. Install with the one-line script on each node, then redeploy manifests or Helm charts. Disable the bundled Traefik or ServiceLB if you already use another ingress or load balancer. There is no in-place conversion of a kubeadm cluster; build a new one and migrate.
Watch out
The bundled defaults, such as Traefik and SQLite, are not always what you want at scale, so plan which ones to replace. k3s is a CNCF Sandbox project, accepted in 2020, and is maintained mainly by SUSE.
Also worth a look
- k0s Another single-binary certified Kubernetes distribution with no host dependencies; pick it if you want fewer bundled defaults than k3s.
More newer, better container runtimes and Kubernetes distributions
Sources
Judged on 2026-11-06. See every container runtimes and Kubernetes distributions, or all 66 replacements.