Skip to content

Hitri začetek ​

Zaženi Kubernetes cluster na Hetznerju v približno 15 minutah.

Predpogoji ​

  • Račun Hetzner Cloud in projektni API-žeton z dovoljenjem za branje in pisanje (Hetzner Console → Security → API tokens):

    bash
    export HCLOUD_TOKEN="<vaš-žeton>"
  • lok8s CLI lo, ena statična binarna datoteka v Go. Prenesi jo z izdaje lok8s, preveri jo s checksums.txt in jo nato namesti. Izberi arhiv za svoj sistem (linux ali darwin, amd64 ali arm64):

    bash
    V=v0.12.0; A=lo-linux-amd64.tar.gz
    curl -fsSLO "https://github.com/kernpilot/lok8s/releases/download/${V}/${A}"
    curl -fsSLO "https://github.com/kernpilot/lok8s/releases/download/${V}/checksums.txt"
    sha256sum --ignore-missing -c checksums.txt   # macOS: shasum -a 256 --ignore-missing -c checksums.txt
    tar -xzf "${A}" lo && mkdir -p "$HOME/.local/bin" && install -m 0755 lo "$HOME/.local/bin/lo"

    Nato ustvari projekt in vanj, v mapo .bin/, namesti pripeto orodjarno za KubeOne. Na sistemu se nič ne spremeni:

    bash
    mkdir my-project && cd my-project
    lo init project
    lo toolchain install --groups core,local,cloud

    Že uporabljaš b? Ta dva namestita lo in isto orodjarno:

    bash
    b env add github.com/kernpilot/lok8s#kubeone
    b install
  • Par SSH ključev (priporočen Ed25519)

  • Domena, ki jo nadzorujete: iz nje sta izpeljana končna točka API in imena certifikatov. Nastavite jo v 1. koraku; referenčna konfiguracija vsebuje example.com samo kot primer, ne kot privzeto vrednost.

1. Ustvari konfiguracijo clustra ​

lo vodi eno mapo na cluster, poimenovano po domeni clustra: clusters/<domena>/cluster.lok8s.yaml. Ustvari mapo v svojem projektu in datoteko shrani vanjo:

bash
mkdir -p clusters/example.com
# spodnjo datoteko prilepi v clusters/example.com/cluster.lok8s.yaml
lo use example.com

lo use označi domeno kot aktivno, tako da vsak nadaljnji ukaz ve, kateri cluster misliš.

yaml
# clusters/example.com/cluster.lok8s.yaml
apiVersion: cluster.lok8s.dev/v1beta1
kind: KubeOne
metadata:
  name: my-cluster
spec:
  kubernetes:
    version: "v1.35.5"
  cluster:
    # OBVEZNO: domena, ki jo nadzoruješ; za končno točko API in certifikate
    domain: example.com
  provider:
    name: hetzner
    # Stroji v Hetznerjevih lastnih pojmih: vsak vnos `server` postane en
    # `hcloud server create`, njegovi ključi pa so zastavice hcloud. Vlogo
    # določa oznaka lok8s.dev/role.
    config:
      cluster_name: my-cluster
      sshUser: root
      sshPrivateKey: ~/.ssh/id_ed25519
      sshPublicKey: ~/.ssh/id_ed25519.pub
      ssh-key:
        - name: my-cluster
          public-key-from-file: ~/.ssh/id_ed25519.pub
      network:
        - name: my-cluster
          ip-range: 10.0.0.0/16
          "#subnets":
            - network-zone: eu-central
              type: cloud
              ip-range: 10.0.0.0/24
      server:
        # 1 kontrolna ravnina za dev; za HA dodaj še dve
        - name: cp-1
          type: cpx32
          image: ubuntu-24.04
          # fsn1, nbg1 ali hel1
          location: fsn1
          ssh-key: [0]
          network: 0
          label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=control-plane
        - name: worker-1
          type: cpx32
          image: ubuntu-24.04
          location: fsn1
          ssh-key: [0]
          network: 0
          label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=worker
        - name: worker-2
          type: cpx32
          image: ubuntu-24.04
          location: fsn1
          ssh-key: [0]
          network: 0
          label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=worker

Primer za vse strežnike uporablja cpx32 (4 vCPU, 8 GB RAM). Deluje tudi vsak tip z vsaj enakim številom vCPU in vsaj enako količino RAM, ki ga tvoj račun Hetzner ponuja na lokaciji.

Zaloga se razlikuje od računa do računa in se spreminja iz ure v uro: če Hetzner tip zavrne, uporabi drug tip ali drugo lokacijo (fsn1, nbg1 ali hel1).

Pred naslednjim korakom spremeni domain (in ime mape) v domeno, ki jo nadzoruješ: nič v tej datoteki je ne more uganiti namesto tebe. Tri poti SSH predpostavljajo ključ Ed25519 s privzetim imenom (~/.ssh/id_ed25519); če se tvoj imenuje drugače ali je drugje, popravi tudi te.

2. Vzpostavi ​

bash
lo provision

To na Hetzner Cloud ustvari tvojo kontrolno ravnino in worker vozlišča. Kubeconfig se zapiše v .kubeconfig/my-cluster.yaml v projektu, poimenovan po metadata.name. Tvoj ~/.kube/config se ne spremeni.

Vzpostavitev običajno traja 10–15 minut. Hetzner tri strežnike obračunava po urah, po svojem objavljenem ceniku. Z ukazom lo destroy lahko kadar koli vse izbrišeš.

3. Preveri ​

kubectl še vedno kaže na kontekst, ki si ga uporabljal prej, zato novo gručo izberi izrecno; sicer get nodes odgovarja za tvojo prejšnjo:

bash
export KUBECONFIG=.kubeconfig/my-cluster.yaml
kubectl get nodes

Tvoja kontrolna ravnina in worker vozlišča naj bodo v stanju Ready.

4. Registracija v kubehz (neobvezno) ​

Samo ta korak potrebuje brezplačen račun kubehz; zgornji predpogoji so vse, kar potrebuje gruča sama. Registracija je odprta za prvih 25 računov, nato samo s povabilom (glej Nadzorna plošča in račun).

Poveži svoj cluster z nadzorno ploščo kubehz za vidljivost zdravja samo za branje. Registracija je samo odhodna: kubehz nikoli ne dobi dostopa v tvoj cluster.

bash
lo kubehz register

To najavi cluster s stanjem V nastajanju. Nato ga prevzemi na app.kubehz.cloud, da dokažeš lastništvo in ga povežeš s svojim računom (registracija → prevzem → v lasti). Za podrobnosti in kaj prikazuje nadzorna plošča glej Registracijo.

Naslednji koraki ​

Status dokumenta ​

VidikPodrobnost
Stanjev živo: ustreza izdanemu poteku CLI; trajanje vzpostavitve je konzervativna meja, na tej topologiji še ni izmerjeno
Zadnji pregled2026-09-05