it-wiki:kubernetes:longhorn_dbs
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| it-wiki:kubernetes:longhorn_dbs [2025/10/11 06:26] – angelegt marko | it-wiki:kubernetes:longhorn_dbs [2025/10/27 07:47] (aktuell) – marko | ||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| Mit Longhorn lassen sich Anwendungen in Kubernetes-Clustern mit skalierbarem und dauerhaftem Speicher ausstatten. Die Software läuft auf Standard-Hardware und ist komplett quelloffen. Sie wird unter der Apache-2.0-Lizenz veröffentlicht. | Mit Longhorn lassen sich Anwendungen in Kubernetes-Clustern mit skalierbarem und dauerhaftem Speicher ausstatten. Die Software läuft auf Standard-Hardware und ist komplett quelloffen. Sie wird unter der Apache-2.0-Lizenz veröffentlicht. | ||
| - | ==== Funktionsweise und Features | + | ==== Funktionsweise und Features ==== |
| + | {{ : | ||
| Longhorn basiert auf einem containerorientierten Ansatz und realisiert verteilten Blockspeicher unter Verwendung der Prinzipien von Containerisierung und Microservices. Für jedes Blockspeichervolume wird ein separater Storage-Controller bereitgestellt. Die Volumes werden über mehrere Knoten hinweg synchron repliziert. Longhorn wird von Kubernetes mittels eines CSI-Treibers (Container Storage Interface Driver) als Speicheranbieter angesprochen. | Longhorn basiert auf einem containerorientierten Ansatz und realisiert verteilten Blockspeicher unter Verwendung der Prinzipien von Containerisierung und Microservices. Für jedes Blockspeichervolume wird ein separater Storage-Controller bereitgestellt. Die Volumes werden über mehrere Knoten hinweg synchron repliziert. Longhorn wird von Kubernetes mittels eines CSI-Treibers (Container Storage Interface Driver) als Speicheranbieter angesprochen. | ||
| Zeile 19: | Zeile 21: | ||
| * Unterbrechungsfreie Aktualisierungen des Longhorn-Stacks. | * Unterbrechungsfreie Aktualisierungen des Longhorn-Stacks. | ||
| - | ==== Anwendungsmöglichkeiten der verteilten Block-Storage-Lösung | + | ==== Anwendungsmöglichkeiten der verteilten Block-Storage-Lösung ==== |
| Die verteilte Open-Source-Block-Storage-Lösung für Kubernetes eröffnet vielfältige Einsatzmöglichkeiten. Longhorn eignet sich besonders für container-native, | Die verteilte Open-Source-Block-Storage-Lösung für Kubernetes eröffnet vielfältige Einsatzmöglichkeiten. Longhorn eignet sich besonders für container-native, | ||
| - | ==== Vorteile | + | ==== Vorteile ==== |
| Longhorn wird unter der Apache-2.0-Lizenz angeboten und steht als Open-Source-Software kostenlos zur Verfügung. Es existiert eine aktive Online-Community, | Longhorn wird unter der Apache-2.0-Lizenz angeboten und steht als Open-Source-Software kostenlos zur Verfügung. Es existiert eine aktive Online-Community, | ||
| Zeile 32: | Zeile 34: | ||
| * flexible Skalierbarkeit, | * flexible Skalierbarkeit, | ||
| * unterbrechungsfreie Aktualisierungen. | * unterbrechungsfreie Aktualisierungen. | ||
| + | |||
| + | ===== Installation und Konfiguration ===== | ||
| + | ==== Voraussetzungen ==== | ||
| + | |||
| + | * Ein Kubernetes-Cluster ab Version 1.25. | ||
| + | * Helm in Version 3. | ||
| + | * Grundlegende Kenntnisse in Kubernetes. | ||
| + | |||
| + | |||
| + | ==== Konfiguration ==== | ||
| + | Legen das Helm Chart Values File '' | ||
| + | |||
| + | Als Erstes passen wir die Einstellung für die Datenlokalität an. Setze diese auf best-effort, | ||
| + | <code yaml> | ||
| + | defaultSettings: | ||
| + | storageMinimalAvailablePercentage: | ||
| + | defaultDataPath: | ||
| + | |||
| + | persistence: | ||
| + | defaultClassReplicaCount: | ||
| + | defaultDataLocality: | ||
| + | |||
| + | longhornUI: | ||
| + | replicas: 1 | ||
| + | |||
| + | service: | ||
| + | ui: | ||
| + | type: LoadBalancer | ||
| + | </ | ||
| + | |||
| + | Hier findet ihr noch [[longhorn_helmchart_values|weitere Helm Chart Values Varianten]] welche ich getestet habe. | ||
| + | ==== Installation ==== | ||
| + | Erstelle den Namespace '' | ||
| + | <code bash> | ||
| + | kubectl create ns longhorn-system | ||
| + | namespace/ | ||
| + | |||
| + | helm repo add longhorn https:// | ||
| + | " | ||
| + | |||
| + | helm repo update | ||
| + | Hang tight while we grab the latest from your chart repositories... | ||
| + | ...Successfully got an update from the " | ||
| + | Update Complete. ⎈Happy Helming!⎈ | ||
| + | </ | ||
| + | |||
| + | Nun kannst Du das Longhorn-System installieren: | ||
| + | <code bash> | ||
| + | helm install longhorn longhorn/ | ||
| + | --namespace longhorn-system \ | ||
| + | --values longhorn.values.yaml | ||
| + | NAME: longhorn | ||
| + | LAST DEPLOYED: Wed Jul 24 07:16:08 2024 | ||
| + | NAMESPACE: longhorn-system | ||
| + | STATUS: deployed | ||
| + | REVISION: 1 | ||
| + | TEST SUITE: None | ||
| + | NOTES: | ||
| + | Longhorn is now installed on the cluster! | ||
| + | |||
| + | Please wait a few minutes for other Longhorn components such as CSI deployments, | ||
| + | |||
| + | Visit our documentation at https:// | ||
| + | </ | ||
| + | |||
| + | ==== Nacharbeiten / maintenance ==== | ||
| + | Prüfe den Status Deiner Installation: | ||
| + | <code bash> | ||
| + | kubectl get pods -n longhorn-system | ||
| + | NAME READY | ||
| + | csi-attacher-5f8b9cbbdc-2dbdg | ||
| + | csi-attacher-5f8b9cbbdc-hq7ps | ||
| + | csi-attacher-5f8b9cbbdc-k2tpq | ||
| + | csi-provisioner-6d85c78995-b4b4r | ||
| + | csi-provisioner-6d85c78995-lvvwb | ||
| + | csi-provisioner-6d85c78995-nkm7g | ||
| + | csi-resizer-677c8b7c75-h9kc7 | ||
| + | csi-resizer-677c8b7c75-qbvxl | ||
| + | csi-resizer-677c8b7c75-wppts | ||
| + | csi-snapshotter-868c6c774d-4z57t | ||
| + | csi-snapshotter-868c6c774d-9t2cd | ||
| + | csi-snapshotter-868c6c774d-ps5lp | ||
| + | engine-image-ei-b0369a5d-4jqzf | ||
| + | instance-manager-84b0d2d8f37aaeabfa5785c886a57710 | ||
| + | longhorn-csi-plugin-bsv4m | ||
| + | longhorn-driver-deployer-6dff48688b-4497d | ||
| + | longhorn-manager-ft96r | ||
| + | longhorn-ui-966cf4bb4-5shp9 | ||
| + | longhorn-ui-966cf4bb4-lx2th | ||
| + | </ | ||
| + | |||
| + | Richte einen wiederkehrenden Auftrag ein, um das Dateisystem regelmäßig zu trimmen und so Speicherplatz zurückzugewinnen. Erstelle dazu die Datei '' | ||
| + | <code yaml> | ||
| + | apiVersion: longhorn.io/ | ||
| + | kind: RecurringJob | ||
| + | metadata: | ||
| + | name: trim-filesystem | ||
| + | namespace: longhorn-system | ||
| + | spec: | ||
| + | concurrency: | ||
| + | cron: 0 0 * * * | ||
| + | name: trim-filesystem | ||
| + | task: filesystem-trim | ||
| + | groups: | ||
| + | - default | ||
| + | </ | ||
| + | |||
| + | Erstelle einen weiteren wiederkehrenden Auftrag, der entfernbaren Snapshots regelmäßig bereinigt. | ||
| + | '' | ||
| + | <code yaml> | ||
| + | apiVersion: longhorn.io/ | ||
| + | kind: RecurringJob | ||
| + | metadata: | ||
| + | name: snapshot-cleanup | ||
| + | namespace: longhorn-system | ||
| + | spec: | ||
| + | concurrency: | ||
| + | cron: 12 0 * * * | ||
| + | groups: | ||
| + | - default | ||
| + | name: snapshot-cleanup | ||
| + | task: snapshot-cleanup | ||
| + | </ | ||
| + | |||
| + | Deploy beide wiederkehrenden Aufträge in Deinen Cluster: | ||
| + | <code bash> | ||
| + | kubectl apply -f trim-filesystem.recurring-job.yaml | ||
| + | recurringjob.longhorn.io/ | ||
| + | |||
| + | kubectl apply -f snapshot-cleanup.recurring-job.yaml | ||
| + | recurringjob.longhorn.io/ | ||
| + | </ | ||
| + | |||
| + | Standardmäßig löscht Longhorn verwaiste Ressourcen nicht automatisch. Es gibt jedoch eine Einstellung, | ||
| + | <code bash> | ||
| + | kubectl -n longhorn-system get setting orphan-auto-deletion -o yaml | sed ' | ||
| + | setting.longhorn.io/ | ||
| + | |||
| + | kubectl -n longhorn-system get setting orphan-auto-deletion | ||
| + | NAME | ||
| + | orphan-auto-deletion | ||
| + | </ | ||
it-wiki/kubernetes/longhorn_dbs.1760163995.txt.gz · Zuletzt geändert: von marko