KubeOne su Hetzner
Configura un cluster Kubernetes di produzione usando KubeOne come provisioner.
Prerequisiti
- La CLI lok8s installata
- La CLI hcloud installata e autenticata
- Una coppia di chiavi SSH aggiunta al tuo progetto Hetzner
- Token API di Hetzner Cloud esportato come
HCLOUD_TOKEN
Configurazione del cluster
Crea un cluster.lok8s.yaml con 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: cpx31Provisioning
bash
lo provisionQuesto comando:
- Crea i server Hetzner Cloud per il control plane e i worker
- Configura la rete privata
- Installa Kubernetes tramite KubeOne
- Salva il kubeconfig in
~/.kube/config
Verifica
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.5Considerazioni sull'HA
- Usa
controlPlane.replicas: 3per la produzione - I nodi del control plane vengono distribuiti automaticamente tra i fault domain
- La rete privata (
hcloud.network.cidr) isola il traffico del cluster
Aggiungere addon bootstrap
Gli addon cluster-infra (CNI, CCM, cert-manager, monitoring, …) sono elencati sotto spec.bootstrap e vengono applicati in ordine al momento del provisioning:
yaml
bootstrap:
- cilium
- ccm
- monitoringEsegui di nuovo lo provision per applicare le modifiche al bootstrap in modo incrementale.
Prossimi passi
- Registrazione — registrazione con la dashboard kubehz
- GitHub Actions — automatizza il provisioning in CI
- CAPI — provisioner alternativo basato su Cluster API
Stato del documento
| Aspetto | Dettaglio |
|---|---|
| Stato | attivo |
| Ultima revisione | 2026-07-10 |