Migration zu SUSE Storage
|
Es wird empfohlen, eine Longhorn-Systemsicherung zu erstellen, bevor das Upgrade durchgeführt wird. Dies stellt sicher, dass alle kritischen Ressourcen, wie Volumes und Backing-Images, gesichert werden und im Falle von Problemen wiederhergestellt werden können. |
Voraussetzungen
Werkzeuge
-
Helm v3.0 oder neuer ist erforderlich.
-
Das Longhorn-Kommandozeilenwerkzeug kann verwendet werden, um die SUSE Storage-Umgebung auf potenzielle Probleme zu überprüfen.
Authentifizierung
-
Um Helm mit dem SUSE Application Collection OCI-Chart-Repository zu authentifizieren, siehe die Helm-Authentifizierungsdokumentation.
-
Um Kubernetes zu ermöglichen, Images aus der Registry zu ziehen, folgen Sie der Kubernetes-Authentifizierungsdokumentation, um ein Secret zu erstellen und den
global.imagePullSecrets-Chart-Wert festzulegen.
Migration von Longhorn, das über Helm bereitgestellt wurde, zu SUSE Storage
Wenn Ihre vorhandene Longhorn-Installation über Helm bereitgestellt wurde, können Sie dies überprüfen, indem Sie helm list --all-namespaces ausführen. Standardmäßig heißt die Helm-Version, die zur Installation von Longhorn verwendet wird, longhorn, kann jedoch auch ein benutzerdefinierter Name sein, der vom Benutzer definiert wurde.
Erstellen Sie optional eine values.yaml-Datei mit allen benutzerdefinierten Einstellungen, die Sie während des Upgrades anwenden möchten.
Fahren Sie mit dem Upgrade auf SUSE Storage unter Verwendung des SUSE Storage-Charts fort:
helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
--namespace longhorn-system \
--version <version> \ # Replace with the version you would like to upgrade to
--set global.imagePullSecrets=<PULL_IMAGE_SECRET>
Optional, wenn Sie eine values.yaml-Datei mit benutzerdefinierten Einstellungen haben, fügen Sie sie mit dem -f-Flag hinzu:
helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
--namespace longhorn-system \
--version <version> \ # Replace with the version you would like to upgrade to
--set global.imagePullSecrets=<PULL_IMAGE_SECRET> \
-f values.yaml
Migration von Longhorn, das über den Rancher Apps Marketplace bereitgestellt wurde, zu SUSE Storage
Wenn Ihre vorhandene Longhorn-Installation über den Rancher Apps Marketplace bereitgestellt wurde, sehen Sie zwei Helm-Versionen, die mit Longhorn verbunden sind, wenn Sie helm list --all-namespaces | grep longhorn ausführen.
Das folgende Beispiel migriert Longhorn v1.10.1, das über Rancher-Charts installiert wurde, zu SUSE Storage v1.10.1.
$ helm list --all-namespaces | grep longhorn
longhorn longhorn-system 1 2025-11-12 02:58:40.877484249 +0000 UTC deployed 108.2.0+up1.10.1 v1.10.1
longhorn-crd longhorn-system 1 2025-11-12 02:58:38.192579711 +0000 UTC deployed longhorn-crd-108.2.0+up1.10.1 v1.10.1
Um die vorhandene Rancher Longhorn-Installation auf SUSE Storage zu migrieren, müssen Sie die longhorn-crd Helm-Release löschen, ohne die CRDs zu entfernen, und dann das longhorn Helm-Release upgraden, indem Sie die folgenden Schritte befolgen.
Entfernen Sie die longhorn-crd Helm-Release, während die CRDs beibehalten werden.
Um die longhorn-crd Helm-Release von Ihrem System zu entfernen und sicherzustellen, dass die Longhorn-CRDs selbst erhalten bleiben, befolgen Sie diese Schritte:
-
Überprüfen Sie die aktuelle Version Ihres
longhorn-crdHelm-Release:helm list --all-namespaces | grep longhorn-crdDie Ausgabe zeigt Ihre
longhorn-crdRelease-Details, zum Beispiel:longhorn-crd longhorn-system 1 2025-11-12 02:58:38.192579711 +0000 UTC deployed longhorn-crd-108.2.0+up1.10.1+up1.11.0 v1.10.1In diesem Beispiel ist die Release-Version
108.2.0+up1.10.1. -
Klonen Sie das
rancher/chartsRepository, das die spezifische Version deslonghorn-crdCharts enthält, die mit Ihrer aktuellen Version übereinstimmt (zum Beispiel108.2.0+up1.10.1für Longhorn v1.10.1):git clone https://github.com/rancher/charts.gitNavigieren Sie in das Verzeichnis, das Ihrer
longhorn-crdChart-Version im geklonten Repository entspricht.Oder Sie können dieses Skript ausführen, um das
longhorn-crd-Chart zu erstellen.Nach dem Ausführen des Befehls
bash ./download-longhorn-crd-chart.sh 108.2.0+up1.10.1wird daslonghorn-crdChart in das lokale Verzeichnis108.2.0+up1.10.1heruntergeladen. Öffnen Sie dann108.2.0+up1.10.1/Chart.yaml, um zu überprüfen, ob die Chart-Version mit108.2.0+up1.10.1übereinstimmt. -
Patchen Sie manuell die
helm.sh/resource-policy: keepAnnotation zu allen benutzerdefinierten Ressourcenbeschreibungen (CRDs) intemplates/crds.yamlinnerhalb deslonghorn-crdCharts, das Sie geklont haben. Dies stellt sicher, dass Helm die CRDs nicht löscht, wenn die Version deinstalliert wird. Alternativ können Sie das Skript verwenden, um die Annotation automatisch zu patchen:bash ./patch-resource-policy-annotation.sh 108.2.0+up1.10.1/templates/crds.yamlUm zu überprüfen, ob die CRDs korrekt gepatcht wurden, führen Sie aus:
vimdiff /tmp/crds.yaml.original 108.2.0+up1.10.1/templates/crds.yaml -
Upgraden Sie das
longhorn-crdHelm-Release mit dem lokal gepatchten Chart:helm upgrade longhorn-crd -n longhorn-system ./108.2.0+up1.10.1 -
Deinstallieren Sie das
longhorn-crdHelm-Release von Ihrem System. Aufgrund des angewendeten Patches bleiben die CRDs intakt.helm uninstall longhorn-crd --namespace longhorn-systemSie können sehen, dass die CRDs beim Deinstallieren der
longhorn-crdHelm-Version erhalten bleiben.$ helm uninstall longhorn-crd --namespace longhorn-system These resources were kept due to the resource policy: [CustomResourceDefinition] backingimagedatasources.longhorn.io [CustomResourceDefinition] backingimagemanagers.longhorn.io [CustomResourceDefinition] nodes.longhorn.io [CustomResourceDefinition] orphans.longhorn.io [CustomResourceDefinition] recurringjobs.longhorn.io [CustomResourceDefinition] replicas.longhorn.io [CustomResourceDefinition] settings.longhorn.io [CustomResourceDefinition] sharemanagers.longhorn.io [CustomResourceDefinition] snapshots.longhorn.io [CustomResourceDefinition] supportbundles.longhorn.io [CustomResourceDefinition] systembackups.longhorn.io [CustomResourceDefinition] systemrestores.longhorn.io [CustomResourceDefinition] backingimages.longhorn.io [CustomResourceDefinition] volumeattachments.longhorn.io [CustomResourceDefinition] volumes.longhorn.io [CustomResourceDefinition] backupbackingimages.longhorn.io [CustomResourceDefinition] backups.longhorn.io [CustomResourceDefinition] backuptargets.longhorn.io [CustomResourceDefinition] backupvolumes.longhorn.io [CustomResourceDefinition] engineimages.longhorn.io [CustomResourceDefinition] engines.longhorn.io [CustomResourceDefinition] instancemanagers.longhorn.io
Ersetzen Sie longhorn-crd durch longhorn in den Longhorn CRDs.
Nachdem Sie sichergestellt haben, dass die longhorn-crd Helm-Version deinstalliert ist, die CRDs jedoch erhalten bleiben, müssen Sie die Eigentumslabels der vorhandenen Longhorn CRDs aktualisieren, um sich auf das Haupt-longhorn Helm-Chart vorzubereiten. Wenden Sie das Shell-Skript an, um die Ersetzung durchzuführen.
Aktualisieren Sie auf SUSE Storage.
Nachdem die CRDs vorbereitet wurden, können Sie mit dem Upgrade Ihrer Longhorn-Installation auf SUSE Storage fortfahren:
helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
--namespace longhorn-system \
--version <version> \ # Replace with the version you would like to upgrade to
--set global.imagePullSecrets=<PULL_IMAGE_SECRET>
Optional, wenn Sie eine values.yaml-Datei mit benutzerdefinierten Einstellungen haben, fügen Sie sie mit dem -f-Flag hinzu:
helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
--namespace longhorn-system \
--version <version> \ # Replace with the version you would like to upgrade to
--set global.imagePullSecrets=<PULL_IMAGE_SECRET> \
-f values.yaml