K3s Lightweight Kubernetes: schneller Cluster-Aufbau für Homelab und Edge

Wenn du Kubernetes nutzen willst, aber keinen schweren Control-Plane-Overhead möchtest, ist K3s eine sehr praktische Wahl. Es ist kompakt, schnell installiert und vollständig mit dem Kubernetes-Ökosystem kompatibel.

Dieses Tutorial liefert eine belastbare Basis mit einem Server-Node und optionalen Worker-Nodes für Homelab, Zweigstellen oder Edge-Szenarien.

Voraussetzungen

  • Linux-Hosts (Ubuntu, Debian oder RHEL)
  • Mindestens 2 vCPU und 2–4 GB RAM pro Node
  • Offene Firewall-Ports für Cluster-Kommunikation
  • Stabile Hostnamen und Zeitsynchronisation

1) Ersten Server-Node installieren

curl -sfL https://get.k3s.io | sh -

Status prüfen:

sudo systemctl status k3s
sudo k3s kubectl get nodes -o wide

K3s bringt kubectl direkt über den k3s-Wrapper mit.

2) kubeconfig für normale Nutzung einrichten

mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown "$(id -u):$(id -g)" ~/.kube/config

Bei Remote-Zugriff ersetze 127.0.0.1 in der kubeconfig durch Server-IP oder DNS.

3) Worker-Node hinzufügen (optional)

Auf dem Server Token auslesen:

sudo cat /var/lib/rancher/k3s/server/node-token

Auf dem Worker:

curl -sfL https://get.k3s.io | \
  K3S_URL=https://<SERVER_IP>:6443 \
  K3S_TOKEN=<NODE_TOKEN> sh -

Node-Status kontrollieren:

sudo k3s kubectl get nodes

4) Schnellen Test-Workload deployen

sudo k3s kubectl create deployment hello-nginx --image=nginx:stable
sudo k3s kubectl expose deployment hello-nginx --type=ClusterIP --port=80
sudo k3s kubectl get pods,svc -o wide

Für externe Lab-Tests kannst du NodePort oder Ingress nutzen.

5) Operative Basis

Minimale Observability

Mindestens einplanen:

  • Metriken
  • Container-Logs
  • Alerts für RAM und Disk

Upgrade-Plan

K3s-Upgrades sind einfach, sollten aber strukturiert erfolgen:

  1. Snapshot/Backup
  2. Erst nicht-kritischen Node upgraden
  3. Workloads validieren
  4. Restliche Nodes ausrollen

Backup-Strategie

  • Sicherung von /etc/rancher/k3s/
  • Datastore-Snapshots sichern
  • Restore regelmäßig testen

Häufige Probleme

Nodes treten nicht bei

Prüfe:

  • K3S_URL mit https://
  • Erreichbarkeit Port 6443
  • Korrektes Token
  • Synchronisierte Uhrzeit

Pods hängen in Pending

Meist Ressourcenmangel oder Taints:

sudo k3s kubectl describe pod <pod-name>
sudo k3s kubectl describe node <node-name>

DNS-Probleme im Cluster

CoreDNS prüfen:

sudo k3s kubectl -n kube-system get pods | grep coredns

Fazit

K3s ist ideal, wenn du Kubernetes-Funktionen mit weniger operativer Reibung benötigst. Für Homelab, Testumgebungen und Edge liefert es schnelle Bereitstellung und verlässliches Verhalten.

Starte mit einem einfachen, stabilen Setup und erweitere dann schrittweise um Ingress, Storage-Klassen, Sicherheitsrichtlinien und Monitoring.