Schnellstart
Bringe in etwa 15 Minuten einen Kubernetes-Cluster auf Hetzner zum Laufen.
Voraussetzungen
Ein Hetzner Cloud-Konto und ein Projekt-API-Token mit Lese- und Schreibrechten (Hetzner Console → Security → API tokens):
bashexport HCLOUD_TOKEN="<dein-token>"Die lok8s CLI: ein in sich geschlossener Befehl (installiert die gepinnte Toolchain in dein Projekt, nichts berührt dein System):
bashcurl -fsSL https://get.lok8s.io | sh -s -- -p kubeoneNutzt du bereits b? Diese beiden tun dasselbe:
bashb env add github.com/kernpilot/lok8s#kubeone b installEin SSH-Schlüsselpaar (Ed25519 empfohlen)
Eine Domain, die dir gehört: der API-Endpunkt und die Zertifikatsnamen des Clusters leiten sich daraus ab. Du setzt sie in Schritt 1; die Referenzkonfiguration liefert
example.comals Platzhalter, nicht als Standard.
1. Cluster-Konfiguration erstellen
lo hält pro Cluster einen Ordner, benannt nach der Domain des Clusters: clusters/<domain>/cluster.lok8s.yaml. Lege den Ordner in deinem Projekt an und speichere die Datei dort:
mkdir -p clusters/example.com
# füge die Datei unten in clusters/example.com/cluster.lok8s.yaml ein
lo use example.comlo use markiert die Domain als aktiv. Jeder spätere Befehl weiß damit, welchen Cluster du meinst.
# clusters/example.com/cluster.lok8s.yaml
apiVersion: cluster.lok8s.dev/v1beta1
kind: KubeOne
metadata:
name: my-cluster
spec:
kubernetes:
version: "v1.35.5"
cluster:
# PFLICHT: eine Domain, die dir gehört; für API-Endpunkt und Zertifikate
domain: example.com
provider:
name: hetzner
# Die Maschinen, in Hetzners eigenen Begriffen: Jeder `server`-Eintrag wird
# zu einem `hcloud server create`, seine Schlüssel sind hcloud-Flags. Die
# Rolle kommt aus dem Label lok8s.dev/role.
config:
cluster_name: my-cluster
sshUser: root
sshPrivateKey: ~/.ssh/id_ed25519
sshPublicKey: ~/.ssh/id_ed25519.pub
ssh-key:
- name: my-cluster
public-key-from-file: ~/.ssh/id_ed25519.pub
network:
- name: my-cluster
ip-range: 10.0.0.0/16
"#subnets":
- network-zone: eu-central
type: cloud
ip-range: 10.0.0.0/24
server:
# 1 Control Plane für Dev; für HA zwei weitere ergänzen
- name: cp-1
type: cx33
image: ubuntu-24.04
# fsn1, nbg1 oder hel1
location: fsn1
ssh-key: [0]
network: 0
label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=control-plane
- name: worker-1
type: cpx31
image: ubuntu-24.04
location: fsn1
ssh-key: [0]
network: 0
label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=worker
- name: worker-2
type: cpx31
image: ubuntu-24.04
location: fsn1
ssh-key: [0]
network: 0
label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=workerÄndere domain (und den Ordnernamen) vor dem nächsten Schritt auf eine Domain, die dir gehört: Nichts in dieser Datei kann sie für dich erraten. Die drei SSH-Pfade setzen einen Ed25519-Schlüssel mit Standardnamen voraus (~/.ssh/id_ed25519); heißt deiner anders oder liegt er woanders, passe auch die an.
2. Bereitstellen
lo provisionDies erstellt deine Control Plane und Worker-Nodes auf Hetzner Cloud. Die kubeconfig wird als .kubeconfig/my-cluster.yaml im Projekt abgelegt, benannt nach metadata.name. Deine ~/.kube/config wird nicht angefasst.
Die Bereitstellung dauert typischerweise 10–15 Minuten. Hetzner rechnet die Server stündlich ab (ein kleines Dev-Setup liegt bei etwa 0,03 €/Stunde), und du kannst mit lo destroy jederzeit alles wieder löschen.
3. Überprüfen
kubectl zeigt weiterhin auf den zuvor genutzten Kontext; wähle den neuen Cluster also explizit aus, sonst antwortet get nodes für deinen vorherigen:
export KUBECONFIG=.kubeconfig/my-cluster.yaml
kubectl get nodesDeine Control Plane und Worker-Nodes sollten im Zustand Ready erscheinen.
4. Bei kubehz registrieren (optional)
Nur dieser Schritt braucht ein kostenloses kubehz-Konto; die Voraussetzungen oben sind alles, was der Cluster selbst benötigt.
Verbinde deinen Cluster mit dem kubehz-Dashboard für schreibgeschützte Zustandssichtbarkeit. Die Registrierung ist nur ausgehend: kubehz erhält niemals Zugriff in deinen Cluster.
lo kubehz registerDies meldet den Cluster mit dem Status Creating an. Beanspruche ihn anschließend unter app.kubehz.cloud, um den Besitz nachzuweisen und ihn mit deinem Konto zu verknüpfen (registrieren → beanspruchen → besitzen). Siehe Registrierung für die Details und was das Dashboard anzeigt.
Nächste Schritte
- Erster-Cluster-Walkthrough: detaillierte Konfigurationsreferenz
- Dashboard & Konto: das Dashboard, Zugriff und Konto erkunden
- Wie es funktioniert: das Modell, die Vertrauensgrenze und deine Daten
- Self-Hosted-Leitfaden: fortgeschrittene Self-Hosted-Einrichtung
- Gehostete Control Plane: der delegierte Weg
Doku-Status
| Aspekt | Detail |
|---|---|
| Zustand | Live: entspricht dem ausgelieferten CLI-Ablauf; die Bereitstellungsdauer ist eine konservative Schranke, auf dieser Topologie noch nicht gemessen |
| Zuletzt geprüft | 2026-09-05 |