Skip to content

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: cpx31

Provisioning

bash
lo provision

Questo comando:

  1. Crea i server Hetzner Cloud per il control plane e i worker
  2. Configura la rete privata
  3. Installa Kubernetes tramite KubeOne
  4. 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.5

Considerazioni sull'HA

  • Usa controlPlane.replicas: 3 per 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
    - monitoring

Esegui 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

AspettoDettaglio
Statoattivo
Ultima revisione2026-07-10