Tooling

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.

On this page