Skip to content

Cluster API (CAPI) op Hetzner

Rol Kubernetes-clusters uit met Cluster API en de Hetzner-infrastructuurprovider (CAPH).

Vereisten

  • lok8s CLI geïnstalleerd
  • Een CAPI-managementcluster (of gebruik lo om er een te bootstrappen)
  • clusterctl geïnstalleerd
  • Hetzner Cloud API-token geëxporteerd als HCLOUD_TOKEN

Clusterconfiguratie

Maak een cluster.lok8s.yaml met kind: Capi:

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

Hoe CAPI-provisioning werkt

Wanneer je lo provision uitvoert met kind: Capi, doet lok8s het volgende:

  1. CAPI Cluster- en MachineDeployment-manifests genereren
  2. Deze toepassen op het managementcluster
  3. CAPH maakt Hetzner Cloud-servers aan
  4. Kubeadm bootstrapt Kubernetes op de nodes
  5. De kubeconfig wordt geëxtraheerd en lokaal opgeslagen

Uitrollen

bash
lo provision

Templatestructuur

lok8s genereert deze CAPI-resources op basis van je configuratie:

  • Cluster — instellingen op clusterniveau (netwerk, regio)
  • HetznerCluster — Hetzner-specifieke infrastructuur
  • KubeadmControlPlane — control plane-machines
  • MachineDeployment — worker node-pools
  • HetznerMachineTemplate — servertype en image

Verifiëren

bash
# Controleer de status van het CAPI-cluster
kubectl get clusters -A

# Controleer de nodes van het workloadcluster
kubectl --kubeconfig=kubeconfig get nodes

Wanneer CAPI of KubeOne gebruiken

AspectKubeOneCAPI
ManagementclusterNiet vereistVereist
Declaratieve levenscyclusGedeeltelijkVolledig
Multi-clusterHandmatigNative
ComplexiteitLagerHoger

Gebruik KubeOne voor losse clusters met eenvoudige vereisten. Gebruik CAPI voor multi-cluster-omgevingen of GitOps-gestuurde infrastructuur.

Volgende stappen


Documentstatus

AspectDetail
Statusactive
Laatst herzien2026-07-10