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
loom 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: cpx31Hoe CAPI-provisioning werkt
Wanneer je lo provision uitvoert met kind: Capi, doet lok8s het volgende:
- CAPI Cluster- en MachineDeployment-manifests genereren
- Deze toepassen op het managementcluster
- CAPH maakt Hetzner Cloud-servers aan
- Kubeadm bootstrapt Kubernetes op de nodes
- De kubeconfig wordt geëxtraheerd en lokaal opgeslagen
Uitrollen
bash
lo provisionTemplatestructuur
lok8s genereert deze CAPI-resources op basis van je configuratie:
Cluster— instellingen op clusterniveau (netwerk, regio)HetznerCluster— Hetzner-specifieke infrastructuurKubeadmControlPlane— control plane-machinesMachineDeployment— worker node-poolsHetznerMachineTemplate— 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 nodesWanneer CAPI of KubeOne gebruiken
| Aspect | KubeOne | CAPI |
|---|---|---|
| Managementcluster | Niet vereist | Vereist |
| Declaratieve levenscyclus | Gedeeltelijk | Volledig |
| Multi-cluster | Handmatig | Native |
| Complexiteit | Lager | Hoger |
Gebruik KubeOne voor losse clusters met eenvoudige vereisten. Gebruik CAPI voor multi-cluster-omgevingen of GitOps-gestuurde infrastructuur.
Volgende stappen
- GitHub Actions — CAPI-provisioning automatiseren in CI
- Registratie — registreren bij het kubehz-dashboard
- KubeOne — eenvoudiger alternatieve provisioner
Documentstatus
| Aspect | Detail |
|---|---|
| Status | active |
| Laatst herzien | 2026-07-10 |