
🌐 Auch auf: English · Français · Español
Wenn du ein kleines Kubernetes-Homelab betreibst und persistenten Speicher mit Redundanz willst, ist Longhorn eine hervorragende Wahl. 🚀
Longhorn ist ein schlankes, cloud-natives verteiltes Block-Storage-System für Kubernetes. Damit legst du hochverfügbare Volumes an, replizierst Daten über mehrere Nodes und verwaltest persistente Volumes, ohne auf externe Storage-Appliances angewiesen zu sein. Für Homelabs oder Edge-Cluster ist das ideal, denn es läuft komplett innerhalb von Kubernetes und lässt sich bequem über eine Web-UI verwalten.
Bevor ich loslegte, habe ich auf jedem Proxmox-Server eine kleine zusätzliche VM mit 50 GB Platte eigens für Longhorn-Volumes angelegt. Danach habe ich mein Ansible-Playbook laufen lassen, um diese drei VMs als Kubernetes-Worker-Nodes einzurichten. 💻
In meinem Setup wollte ich redundanten, zuverlässigen Speicher für kleine Workloads und Testumgebungen, ohne meine knappen VM-Platten zu überfordern. Die optimale Lösung wäre, den Longhorn-Speicher über eine eigene zusätzliche Partition an die Worker anzubinden. Da ich aber nur kleine Test-Apps wie WordPress oder Nextcloud betreibe und keine Zuverlässigkeit auf Produktionsniveau brauche, habe ich mich entschieden, für Longhorn die Root-Partition zu nutzen – und die Plattenbelegung in der Longhorn-GUI genau im Auge zu behalten, damit der verfügbare Platz nicht überschritten wird. 🎯
1. Helm installieren
Falls Helm auf deinem System noch nicht installiert ist, kannst du es per Bash und curl installieren:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm version2. Das Longhorn-Helm-Repository hinzufügen
Füge das offizielle Longhorn-Helm-Repo hinzu:
helm repo add longhorn https://charts.longhorn.io
helm repo updateDamit kannst du die Longhorn-Charts bequem abrufen und installieren.
3. Die Worker-Nodes labeln
Vor der Installation versiehst du die Worker-Nodes mit einem Label, damit Longhorn nur dort ausgerollt wird:
kubectl label node vm16 longhorn=true
kubectl label node vm26 longhorn=true
kubectl label node vm36 longhorn=true4. Das Helm-Chart lokal vorbereiten
Um die Installation anzupassen, lädst du das Chart lokal herunter:
helm fetch longhorn/longhorn --untar
cd longhornSo kannst du die values.yaml vor dem Rollout bearbeiten.
5. Die values.yaml anpassen
Wichtige Änderungen in der values.yaml:
- Namespace:
longhorn-system– isoliert die Ressourcen von Longhorn. - ReplicaCount: 2 – sorgt für Redundanz bei den Longhorn-Engines.
- Speicherpfad:
/var/lib/longhorn– zum Testen wird die Root-Partition genutzt; in Produktion empfiehlt sich eine eigene Platte. - NodeSelector:
longhorn=true– sorgt dafür, dass Pods nur auf gelabelten Nodes landen. - UI NodePort: auf dem Standard belassen – für den Zugriff im Homelab.
6. Den Namespace anlegen
kubectl create namespace longhorn-system7. Longhorn per Helm installieren
helm install longhorn ./longhorn --namespace longhorn-system -f values.yamlHelm rollt Longhorn mit den Einstellungen aus deiner angepassten values.yaml aus.

8. Den NodePort für die UI prüfen
kubectl get svc -n longhorn-systemDie UI erreichst du über jeden beliebigen Worker-Node:
http://<worker-node-ip>:309649. Plattenlimits verwalten
Da meine VMs keine zusätzlichen Platten haben, habe ich den Longhorn-Speicher über die Longhorn-GUI auf einen Teil des Root-Dateisystems begrenzt. Das verhindert, dass die Platte versehentlich vollläuft. In Produktion nimmst du für Longhorn-Volumes eine eigene Platte oder Partition.
10. Upgrades / Werte ändern
helm upgrade longhorn ./longhorn --namespace longhorn-system -f values.yamlErgänze --install, falls das Release eventuell noch nicht existiert. Helm installiert oder aktualisiert dann gefahrlos.
✅ Ergebnis
- Longhorn läuft in seinem eigenen Namespace
longhorn-system - Die UI ist per NodePort erreichbar
- Speicherpfad und Plattenlimits werden eingehalten
- Komponenten laufen nur auf gelabelten Nodes
- Upgrades und geänderte Werte funktionieren ohne Neuinstallation
Dieses Setup ist ideal für kleine Homelabs: hochverfügbare persistente Volumes in Kubernetes, eine freundliche UI und volle Kontrolle über die Speichernutzung. 🎉
Und schließlich werde ich in meinem nächsten WordPress-Blogbeitrag eine kleine Test-App installieren, bei der ich gezielt Longhorn mit PersistentVolumeClaims (PVCs) einsetze, und zeigen, wie Anwendungen die von Longhorn verwalteten Volumes direkt als persistenten Speicher nutzen können. 🖖






