Skip to content

Cluster API (CAPI) na Hetznerju

Vzpostavi Kubernetes clustre z uporabo Cluster API in Hetznerjevega infrastrukturnega ponudnika (CAPH).

En cluster, preproste zahteve? KubeOne je preprostejši: glej, kdaj uporabiti katerega →

Predpogoji

  • Nameščen lok8s CLI
  • Upravljalni CAPI cluster. Ali pa pusti, da ga lo z nastavitvijo managementCluster.local: true v specifikaciji ustvari lokalno kot kind cluster (glej vodnik lok8s za CAPI). V vsakem primeru je managementCluster.domain obvezen: poimenuje upravljalni cluster, local: true pa le določa, ali ga lok8s ustvari, namesto da bi pričakoval obstoječega.
  • Nameščen clusterctl
  • Hetzner Cloud API žeton, izvožen kot HCLOUD_TOKEN

Konfiguracija clustra

Ustvari clusters/example.com/cluster.lok8s.yaml s kind: Capi (mapa je poimenovana po tvoji domeni), nato zaženi lo use example.com. Za razliko od KubeOne gonilnik Capi obdrži controlPlane in workers v specifikaciji, ker vire strojev CAPI ustvari sam; blok ponudnika nosi le to, kar potrebuje CAPH:

yaml
# clusters/example.com/cluster.lok8s.yaml
apiVersion: cluster.lok8s.dev/v1beta1
kind: Capi
metadata:
  name: capi-cluster
spec:
  kubernetes:
    version: "v1.35.5"
  cluster:
    # OBVEZNO: domena, ki jo nadzoruješ; za končno točko API in certifikate
    domain: example.com
  managementCluster:
    # OBVEZNO za self-hosted CAPI: `lo provision` se brez tega ne zažene
    domain: mgmt.example.com
    # Ustvari ga kot lokalni kind cluster, namesto da pričakuje obstoječega
    local: true
  provider:
    name: hetzner
    config:
      # fsn1, nbg1 ali hel1
      region: fsn1
      # SSH ključ, ki obstaja v tvojem projektu Hetzner
      sshKeyName: my-key
      # standardna slika; Kubernetes se namesti prek cloud-init
      image: ubuntu-24.04
      network:
        # zasebno omrežje hcloud
        enabled: true
      # razporedi kontrolno ravnino in workerje po različnih gostiteljih
      placementGroups: true
    credentials:
      envVars:
        - HCLOUD_TOKEN
      secretRef: capi-cluster-credentials
  controlPlane:
    # liho število za kvorum etcd
    replicas: 3
    type: cx33
  workers:
    platform:
      replicas: 2
      type: cpx31
  bootstrap:
    - cilium
    - ccm: {networking: {enabled: true}}

Kako deluje vzpostavitev s CAPI

Ko zaženeš lo provision s kind: Capi, lok8s:

  1. Generira manifeste CAPI Cluster in MachineDeployment
  2. Jih uveljavi na upravljalnem clustru
  3. CAPH ustvari Hetzner Cloud strežnike
  4. Kubeadm vzpostavi Kubernetes na vozliščih
  5. Kubeconfig delovnega clustra se zapiše v .kubeconfig/capi-cluster.yaml v projektu, poimenovan po metadata.name. Kubeconfig upravljalnega clustra je .kubeconfig/mgmt.example.com.yaml, poimenovan po managementCluster.domain. Tvoj ~/.kube/config se ne spremeni.

Vzpostavi

bash
lo provision

Zgornja konfiguracija pri Hetznerju zahteva pet strežnikov (3 za kontrolno ravnino in 2 workerja), ki se obračunavajo po urah po objavljenih cenah Hetznerja za te tipe strežnikov. Nič od tega ni nepovratno: lo destroy kadar koli odstrani vsak strežnik, ki ga je ustvaril lok8s.

Struktura predloge

lok8s iz tvoje konfiguracije generira te CAPI vire:

  • Cluster: nastavitve na ravni clustra (omrežje, regija)
  • HetznerCluster: infrastruktura, specifična za Hetzner
  • KubeadmControlPlane: stroji kontrolne ravnine
  • MachineDeployment: nabori worker vozlišč
  • HetznerMachineTemplate: tip strežnika in slika (image)

Preveri

Viri CAPI živijo na upravljalnem clustru, tvoja vozlišča pa na delovnem. Nobeden ni tvoj privzeti kubectl kontekst, zato vsak kubeconfig navedi izrecno:

bash
# Stanje CAPI clustra — na upravljalnem clustru
kubectl --kubeconfig=.kubeconfig/mgmt.example.com.yaml get clusters -A

# Vozlišča delovnega clustra
kubectl --kubeconfig=.kubeconfig/capi-cluster.yaml get nodes

Kdaj uporabiti CAPI in kdaj KubeOne

VidikKubeOneCAPI
Upravljalni clusterNi potrebenPotreben
Deklarativni življenjski cikelDelnoPopolno
Več clustrovRočnoIzvorno (native)
KompleksnostNižjaVišja

KubeOne uporabi za posamezne clustre s preprostimi zahtevami. CAPI uporabi za okolja z več clustri ali infrastrukturo, vodeno z GitOps.

Naslednji koraki

  • GitHub Actions: avtomatizacija vzpostavitve s CAPI v CI
  • Registracija: registracija v nadzorno ploščo kubehz
  • KubeOne: preprostejše alternativno orodje za vzpostavitev

Status dokumenta

VidikPodrobnost
Stanjeaktivno
Nazadnje pregledano2026-09-05