Kubernetes Distributions
How to actually get a Kubernetes cluster running.
Hosted control plane (cloud)
- ★ EKS (AWS) — most mature; control plane $73/mo + nodes; deeply integrated with IAM.
- ★ GKE (GCP) — best DX of the cloud k8s; Autopilot mode is hands-off; great Cilium support.
- AKS (Azure) — solid; AD integration; free control plane on certain tiers.
- DigitalOcean Kubernetes (DOKS) — free control plane, simple, cheap nodes.
- Linode Kubernetes Engine — same niche as DOKS; free control plane.
- Vultr Kubernetes Engine — cheap.
- Civo — k3s under the hood; free control plane, fast spin-up.
- Scaleway Kapsule — EU; competitive.
- OVH Managed Kubernetes — EU; free control plane.
- Hetzner Cloud + k3s — DIY but cheap; many run this combo.
Self-host (production)
- ★ kubeadm — official "build your own cluster" tool. Most learning, most control, more ops.
- ★ k3s (Rancher / SUSE) — single-binary "Kubernetes lite" that's actually full upstream Kubernetes. Default for edge / small clusters / homelab.
- k0s (Mirantis) — competitor to k3s; single binary, simpler upgrade story.
- Talos Linux (Sidero) — immutable, API-driven, no SSH; declarative cluster spec. The modern self-host pick for serious workloads.
- Rancher RKE2 — SUSE's Kubernetes distro; production-hardened.
- Cluster API (CAPI) — Kubernetes as the API for managing other Kubernetes clusters.
- kops — older AWS-focused cluster bootstrapper; less common.
- Charmed Kubernetes (Canonical) — for Ubuntu shops.
- OpenShift (Red Hat) — k8s plus a lot of extras; commercial.
Edge / IoT-flavored
- k3s — also great here; tiny footprint.
- MicroK8s (Canonical) — single-package Ubuntu k8s; addons (DNS, ingress, storage) one toggle each.
- k3d — k3s in Docker; very fast for local; not for prod.
Local dev
See Local Kubernetes — Kind, k3d, Minikube, Rancher Desktop.
Distro-specific OSes
See Container Host OS — Talos, Bottlerocket, Flatcar, Fedora CoreOS.
Cluster lifecycle / upgrades
- Cluster API (CAPI) + a provider (CAPA / CAPG / CAPV) — declarative cluster lifecycle.
- Talos
talosctl upgrade— single command for OS + k8s. - k3s
Install_K3s_VERSION=… curl …— re-run installer to upgrade. - Kured — coordinated reboots after kernel updates.
- kubeadm upgrade — manual but well-documented.
Patterns to know
- Don't run your own etcd unless you must. Hosted distros and Talos handle it.
- Pin k8s minor versions in IaC. Auto-upgrades to a new minor break things.
- At least 3 control-plane nodes for HA self-host (or single-node-with-backups if you accept the risk).
- Separate control plane and workload nodes in larger clusters.
- Have a recreation plan. Cluster gone → 30-min rebuild via Cluster API or Talos
apply.
Pick this if…
- Production, want managed: EKS / GKE / AKS based on your cloud.
- Production, want managed-but-cheap: DOKS / Linode / Civo / OVH.
- Self-host, simplest: k3s on a Hetzner box.
- Self-host, declarative + immutable: Talos.
- Big enterprise: OpenShift or RKE2.
- Bare-metal at scale: Cluster API + Talos + Tinkerbell.