Quickstart
Get a Kubernetes cluster running on Hetzner in 5 minutes.
Prerequisites
- A Hetzner Cloud account
- lok8s CLI installed (
b env add github.com/kernpilot/lok8s) - An SSH key pair (Ed25519 recommended)
1. Create your cluster config
yaml
# cluster.lok8s.yaml
apiVersion: cluster.lok8s.dev/v1beta1
kind: KubeOne
metadata:
name: my-cluster
spec:
kubernetes:
version: "v1.35.5"
provider: hetzner
hcloud:
region: fsn1 # fsn1, nbg1, or hel1
sshPublicKeyFile: "~/.ssh/id_ed25519.pub"
ssh:
user: root
publicKeyFile: "~/.ssh/id_ed25519.pub"
privateKeyFile: "~/.ssh/id_ed25519"
controlPlane:
replicas: 1 # 1 for dev, 3 for HA
type: cx33
workers:
platform:
replicas: 2
type: cpx312. Provision
bash
lo provisionThis creates your control plane and worker nodes on Hetzner Cloud. The kubeconfig is saved automatically.
3. Verify
bash
kubectl get nodesYou should see your control plane and worker nodes in Ready state.
4. Register with kubehz (optional)
Connect your cluster to the kubehz dashboard for read-only health visibility. Registration is outbound-only — kubehz never gets access into your cluster.
bash
lo kubehz registerThis announces the cluster as pending. Then claim it at app.kubehz.cloud to prove ownership and link it to your account (register → claim → owned). See Registration for the details and what the dashboard shows.
Next steps
- First Cluster walkthrough — detailed config reference
- Dashboard & account — explore the dashboard, team, and account
- How it works — the model, trust boundary, and your data
- Self-Hosted guide — advanced self-hosted setup
- Hosted control plane — the delegated path (early access)