Skip to content

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: cpx31

2. Provision

bash
lo provision

This creates your control plane and worker nodes on Hetzner Cloud. The kubeconfig is saved automatically.

3. Verify

bash
kubectl get nodes

You 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 register

This 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