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:
- Snapshot/Backup
- Erst nicht-kritischen Node upgraden
- Workloads validieren
- 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_URLmithttps://- 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.