ArcLibrary

k3s & Lightweight K8s Distros

K8s isn't only for big clusters — k3s / k0s / Talos can fit on a Raspberry Pi.

k3sK8sEdge
核心 · Key Idea

In one line: vanilla K8s is heavy as a battleship; k3s packs the control plane into a single binary — 100 MB and one command to install. Home labs / edge / IoT / single-host production: all viable.

One-line k3s install#

# Master
curl -sfL https://get.k3s.io | sh -
 
# Auto-generated kubeconfig
sudo cat /etc/rancher/k3s/k3s.yaml
 
# Add a worker (get token from master)
curl -sfL https://get.k3s.io | K3S_URL=https://master:6443 \
  K3S_TOKEN=xxx sh -

kubectl get nodes just works — etcd / control plane / kubelet are all in one binary.

Analogy#

打个比方 · Analogy

Vanilla K8s is a full IT department — architects, DBAs, SREs, network engineers — fits big companies. k3s is a full-stack engineer — one person doing everything; small teams / personal / edge are actually more nimble.

Mainstream lightweight distros#

k3s (Rancher / SUSE)
Single binary + sqlite/etcd + Traefik / ServiceLB defaults. Most popular.
k0s
More 'zero-dependency' ethos; uses etcd or kine.
MicroK8s (Canonical)
snap install, Ubuntu's own.
minikube / kind
Local dev only — not production.
Talos Linux
Treats K8s as the only app on bare metal; the whole OS is immutable.
RKE2 / EKS / GKE Autopilot
Enterprise / cloud-managed.

How it works#

Practical notes#

  • Batteries included: Traefik / metrics-server / local-path / ServiceLB — works out of the box on a single host. Disable any with --disable=traefik.
  • Lightweight but really K8s: API-compatible — Helm / kubectl / CRDs / Operators all work.
  • Datastore: < 30 nodes → embedded etcd is fine; more → external etcd / mysql / postgres.
  • HA: --cluster-init + ≥3 server nodes for control-plane HA.
  • Edge fleets: Rancher Fleet / Cattle Drive manages hundreds of clusters via GitOps.
  • Home lab: 3 Raspberry Pis + k3s + Tailscale = 100 % real production experience.
  • Upgrade: curl get.k3s.io | sh -s - --version v1.30.x or system-upgrade-controller.

Easy confusions#

k3s
Single binary, low memory.
Production / edge / personal all fine.
Vanilla K8s (kubeadm)
Full component set — flexible but complex.
Big clusters / enterprise.

Further reading#