Skip to content

Choose your setup

KSail separates what Kubernetes you run (the distribution) from where its nodes run (the provider). You pick both in ksail.yaml; the workflow (initcreateupdatedelete) is identical regardless of choice. This page helps you choose. For the exhaustive compatibility grid, see the Support Matrix.

Your goal Start with Why
Learn Kubernetes / general local dev Vanilla (Kind) Unmodified upstream Kubernetes, fastest to start, Docker-only
Fast inner loop & CI/CD K3s (K3d) Lightweight, batteries-included, quick to create and tear down
Production-grade / secure / immutable Talos API-driven immutable OS; runs on Docker, Hetzner, or Omni
Isolate teams or feature branches cheaply VCluster Virtual clusters inside one host — low overhead, strong isolation
Scale-test controllers or the API server KWOK Simulates thousands of nodes with near-zero resource cost
Managed Kubernetes on AWS EKS Managed control plane on AWS (scaffolding today; provisioning coming)
Managed Kubernetes on Google Cloud GKE Managed control plane on Google Cloud, declarative gke.yaml spec
Managed Kubernetes on Azure AKS Managed control plane on Azure, declarative aks.yaml spec
Distribution Tool Best for Providers
Vanilla Kind Upstream Kubernetes, learning, local dev Docker, Kubernetes
K3s K3d Lightweight dev & CI/CD Docker, Kubernetes
Talos Talos Immutable, secure, production Docker, Kubernetes, Hetzner, Omni
VCluster Vind Multi-tenancy, feature branches, CI isolation Docker, Kubernetes
KWOK kwokctl Simulation, scale & controller testing Docker, Kubernetes
EKS eksctl Managed Kubernetes on AWS AWS
GKE Google Cloud SDK Managed Kubernetes on Google Cloud GCP
AKS Azure SDK Managed Kubernetes on Azure Azure

The provider decides where nodes actually run. Most distributions default to Docker (local containers); Talos additionally runs on real or virtual cloud infrastructure.

Provider Runs nodes as Use it for
Docker Local Docker containers The default for all local distributions
Kubernetes (Nested) Pods in an existing cluster Running clusters inside a cluster — no Docker on the host
Hetzner Hetzner Cloud servers Affordable real cloud clusters (Talos)
Omni (Sidero) Talos nodes via Sidero Omni Managing Talos through the Omni SaaS
AWS Managed EKS Managed Kubernetes on Amazon Web Services
GCP Managed GKE Managed Kubernetes on Google Cloud
Azure Managed AKS Managed Kubernetes on Microsoft Azure
# ksail.yaml — Talos on Docker locally…
spec:
cluster:
distribution: Talos
provider: Docker
# …and the same distribution on Hetzner for production
spec:
cluster:
distribution: Talos
provider: Hetzner

Keeping the distribution constant across environments (e.g. Talos locally and in production) maximizes fidelity. See the Reference Architecture for a worked local-plus-production setup, and the Support Matrix for every supported combination.