Quickstart
Krijg binnen ongeveer 15 minuten een Kubernetes-cluster draaiend op Hetzner.
Vereisten
Een Hetzner Cloud-account en een project-API-token met lees- en schrijfrechten (Hetzner Console → Security → API tokens):
bashexport HCLOUD_TOKEN="<jouw-token>"De lok8s CLI: één op zichzelf staand commando (installeert de vastgepinde toolchain in je project, raakt je systeem niet aan):
bashcurl -fsSL https://get.lok8s.io | sh -s -- -p kubeoneGebruik je al b? Deze twee doen hetzelfde:
bashb env add github.com/kernpilot/lok8s#kubeone b installEen SSH-sleutelpaar (Ed25519 aanbevolen)
Een domein dat je beheert: het API-endpoint en de certificaatnamen van het cluster worden daarvan afgeleid. Je stelt het in bij stap 1; de referentieconfiguratie bevat
example.comals plaatsaanduiding, niet als standaard.
1. Maak je clusterconfiguratie
lo houdt één map per cluster bij, vernoemd naar het domein van het cluster: clusters/<domein>/cluster.lok8s.yaml. Maak de map aan in je project en sla het bestand daar op:
mkdir -p clusters/example.com
# plak het onderstaande bestand in clusters/example.com/cluster.lok8s.yaml
lo use example.comlo use markeert het domein als actief, zodat elk volgend commando weet welk cluster je bedoelt.
# clusters/example.com/cluster.lok8s.yaml
apiVersion: cluster.lok8s.dev/v1beta1
kind: KubeOne
metadata:
name: my-cluster
spec:
kubernetes:
version: "v1.35.5"
cluster:
# VERPLICHT: een domein dat je beheert; voor het API-endpoint en certificaten
domain: example.com
provider:
name: hetzner
# De machines, in de termen van Hetzner zelf: elk `server`-item wordt één
# `hcloud server create`, en zijn sleutels zijn hcloud-flags. De rol komt
# uit het label 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 control plane voor dev; voeg er twee toe voor HA
- name: cp-1
type: cx33
image: ubuntu-24.04
# fsn1, nbg1 of hel1
location: fsn1
ssh-key: [0]
network: 0
label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=control-plane
- name: worker-1
type: cpx31
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: cpx31
image: ubuntu-24.04
location: fsn1
ssh-key: [0]
network: 0
label: lok8s.dev/cluster=my-cluster,lok8s.dev/role=workerWijzig domain (en de mapnaam) naar een domein dat je beheert vóór de volgende stap: niets in dit bestand kan het voor je raden. De drie SSH-paden gaan uit van een Ed25519-sleutel met de standaardnaam (~/.ssh/id_ed25519); heet de jouwe anders of staat hij elders, pas die dan ook aan.
2. Uitrollen
lo provisionDit maakt je control plane en worker nodes aan op Hetzner Cloud. De kubeconfig wordt weggeschreven naar .kubeconfig/my-cluster.yaml in je project, vernoemd naar metadata.name. Je ~/.kube/config blijft ongemoeid.
Uitrollen duurt doorgaans 10–15 minuten. Hetzner factureert de servers per uur (een kleine dev-opstelling kost ongeveer € 0,03/uur), en met lo destroy verwijder je op elk moment weer alles.
3. Verifiëren
kubectl wijst nog steeds naar de context die je eerder gebruikte, dus selecteer het nieuwe cluster expliciet; anders antwoordt get nodes voor je vorige:
export KUBECONFIG=.kubeconfig/my-cluster.yaml
kubectl get nodesJe zou je control plane en worker nodes in de status Ready moeten zien.
4. Registreren bij kubehz (optioneel)
Alleen deze stap vraagt een gratis kubehz-account; de vereisten hierboven zijn alles wat de cluster zelf nodig heeft.
Verbind je cluster met het kubehz-dashboard voor alleen-lezen gezondheidszichtbaarheid. Registratie is alleen uitgaand: kubehz krijgt nooit toegang tot je cluster.
lo kubehz registerDit meldt het cluster aan met de status Creating. Claim het vervolgens op app.kubehz.cloud om eigenaarschap te bewijzen en het aan je account te koppelen (register → claim → owned). Zie Registratie voor de details en wat het dashboard toont.
Volgende stappen
- Eerste cluster-uitleg: gedetailleerde configuratiereferentie
- Dashboard & account: verken het dashboard, toegang en account
- Hoe het werkt: het model, de vertrouwensgrens en jouw data
- Self-Hosted-gids: geavanceerde self-hosted setup
- Gehost control plane: het gedelegeerde pad
Documentstatus
| Aspect | Detail |
|---|---|
| Status | live: komt overeen met de uitgeleverde CLI-flow; de uitrolduur is een conservatieve grens, nog niet gemeten op deze topologie |
| Laatst gecontroleerd | 2026-09-05 |