Longhorn #
Deployment #
Quelle #
Die Anwendung wird als Helm-Chart von longhorn.io bezogen.
Dokumentation #
Die offizielle Dokumentation von Longhorn ist unter longhorn.io/docs zu finden.
Funktion #
Longhorn ist die primäre Lösung für persistenten Speicher (Storage) in diesem Cluster. Es erstellt aus dem lokalen Speicher der einzelnen Kubernetes-Nodes einen verteilten, hochverfügbaren Speicher-Pool. Für jedes Persistent Volume (PV), das von einer Anwendung angefordert wird, erstellt Longhorn ein Volume, das synchron auf mehrere Nodes repliziert wird (standardmäßig 3 Replikate). Fällt ein Node aus, bleiben die Daten auf den anderen Replikaten verfügbar. Longhorn bietet zudem Funktionen wie Snapshots, Backups (z.B. auf S3 oder NFS) und eine intuitive Web-UI zur Verwaltung.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei.
Wichtige Einstellungen #
- Netzwerk-Policies: Es werden automatisch Netzwerk-Policies für k3s erstellt, um den Traffic zwischen den Longhorn-Komponenten zu kontrollieren.
- Ingress: Der Zugriff auf die Longhorn-Weboberfläche wird über einen Ingress mit einem Hostnamen ermöglicht. Der Zugriff ist durch eine Middleware auf Traefik-Ebene auf lokale Netzwerke beschränkt.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/longhorn-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/longhorn | kubectl apply -n longhorn-system -f -
Abhängigkeiten #
- Traefik: Wird als Ingress-Controller für den externen Zugriff auf die UI benötigt.
- cert-manager: Wird für die automatische Bereitstellung von TLS-Zertifikaten für die UI benötigt.