Skip to content

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

Uitrollen

bash
lo provision

Dit doet het volgende:

  1. Hetzner Cloud-servers aanmaken voor control plane en workers
  2. Het privénetwerk opzetten
  3. Kubernetes installeren via KubeOne
  4. 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.5

HA-overwegingen

  • Gebruik controlPlane.replicas: 3 voor 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
    - monitoring

Voer 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

AspectDetail
Statusactive
Laatst herzien2026-07-10