Skip to content

KubeOne auf Hetzner

Richte einen produktionsreifen Kubernetes-Cluster mit KubeOne als Provisioner ein.

Voraussetzungen

  • lok8s CLI installiert
  • hcloud CLI installiert und authentifiziert
  • Ein SSH-Schlüsselpaar, das zu deinem Hetzner-Projekt hinzugefügt wurde
  • Hetzner-Cloud-API-Token als HCLOUD_TOKEN exportiert

Cluster-Konfiguration

Erstelle eine cluster.lok8s.yaml mit kind: KubeOne:

yaml
apiVersion: cluster.lok8s.dev/v1beta1
kind: KubeOne
metadata:
  name: production
spec:
  kubernetes:
    version: "v1.35.5"
  provider: hetzner
  hcloud:
    region: fsn1
    sshPublicKeyFile: "~/.ssh/id_ed25519.pub"
    network:
      cidr: "10.0.0.0/16"
  ssh:
    user: root
    publicKeyFile: "~/.ssh/id_ed25519.pub"
    privateKeyFile: "~/.ssh/id_ed25519"
  controlPlane:
    replicas: 3
    type: cx33
  workers:
    platform:
      replicas: 2
      type: cpx31

Bereitstellen

bash
lo provision

Dies wird:

  1. Hetzner-Cloud-Server für Control Plane und Worker erstellen
  2. Das private Netzwerk einrichten
  3. Kubernetes via KubeOne installieren
  4. Die kubeconfig unter ~/.kube/config speichern

Überprüfen

bash
kubectl get nodes
# NAME           STATUS   ROLES           AGE   VERSION
# cp-1           Ready    control-plane   5m    v1.35.5
# cp-2           Ready    control-plane   5m    v1.35.5
# cp-3           Ready    control-plane   5m    v1.35.5
# worker-1       Ready    <none>          4m    v1.35.5
# worker-2       Ready    <none>          4m    v1.35.5

HA-Überlegungen

  • Verwende controlPlane.replicas: 3 für die Produktion
  • Control-Plane-Nodes werden automatisch über Fehlerdomänen verteilt
  • Das private Netzwerk (hcloud.network.cidr) isoliert den Cluster-Traffic

Bootstrap-Addons hinzufügen

Cluster-Infra-Addons (CNI, CCM, cert-manager, Monitoring, …) stehen unter spec.bootstrap und werden beim Provisionieren in Reihenfolge angewendet:

yaml
  bootstrap:
    - cilium
    - ccm
    - monitoring

Führe lo provision erneut aus, um Bootstrap-Änderungen schrittweise anzuwenden.

Nächste Schritte

  • Registrierung — beim kubehz-Dashboard registrieren
  • GitHub Actions — Bereitstellung in CI automatisieren
  • CAPI — alternativer Provisioner mit Cluster API

Doku-Status

AspektDetail
Zustandaktiv
Zuletzt geprüft2026-07-10