KubeOne op Hetzner
Zet een productie-Kubernetes-cluster op met KubeOne als provisioner.
Vereisten
- lok8s CLI geïnstalleerd
- hcloud CLI geïnstalleerd en geauthenticeerd
- Een SSH-sleutelpaar toegevoegd aan je Hetzner-project
- Hetzner Cloud API-token geëxporteerd als
HCLOUD_TOKEN
Clusterconfiguratie
Maak een cluster.lok8s.yaml met 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: cpx31Uitrollen
bash
lo provisionDit doet het volgende:
- Hetzner Cloud-servers aanmaken voor control plane en workers
- Het privénetwerk opzetten
- Kubernetes installeren via KubeOne
- De kubeconfig opslaan in
~/.kube/config
Verifiëren
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.5HA-overwegingen
- Gebruik
controlPlane.replicas: 3voor productie - Control plane-nodes worden automatisch over fault domains verspreid
- Het privénetwerk (
hcloud.network.cidr) isoleert clusterverkeer
Bootstrap-addons toevoegen
Cluster-infra-addons (CNI, CCM, cert-manager, monitoring, …) staan onder spec.bootstrap en worden bij het provisionen in volgorde toegepast:
yaml
bootstrap:
- cilium
- ccm
- monitoringVoer lo provision opnieuw uit om bootstrap-wijzigingen incrementeel toe te passen.
Volgende stappen
- Registratie — registreren bij het kubehz-dashboard
- GitHub Actions — provisioning automatiseren in CI
- CAPI — alternatieve provisioner met Cluster API
Documentstatus
| Aspect | Detail |
|---|---|
| Status | active |
| Laatst herzien | 2026-07-10 |