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/15 06:40] (aktuell) – [Konfiguration] 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