Manuelle Bereitstellung des Shift Operators (Standardmodus)
Das NetApp Shift Toolkit kann manuell als containerisierter Dienst mit NetApp Trident CSI und Migration Toolkit for Virtualization (MTV) bereitgestellt werden. Dieser Prozess ermöglicht die automatisierte Speicherbereitstellung und die Migration von Festplatten virtueller Maschinen, wobei Annotationen und Labels genutzt werden, um Anfragen korrekt zwischen den Komponenten weiterzuleiten.
Architekturkomponenten
Es wird erläutert, wie das NetApp Shift toolkit, Trident CSI und das Migration Toolkit for Virtualization zusammenwirken, um die automatisierte Speicherbereitstellung und die Migration von VM-Festplatten in Ihrer OpenShift Umgebung zu ermöglichen.
NetApp Shift Toolkit
-
Bereitgestellt als containerisierter Dienst über eine Image-Registry
-
Stellt einen Endpunkt bereit, der auf Persistent Volume Claim (PVC)-Anfragen von MTV mit einer bestimmten Annotation wartet
-
Verantwortlich für die Bearbeitung von VM Festplattenmigrationsaufgaben, einschließlich Formatkonvertierungen
NetApp Trident CSI (Version 26.06 oder höher)
-
Fungiert als Container Storage Interface (CSI) Provisioner
-
Empfängt PVC-Importanfragen vom Shift toolkit
-
Wendet Logik basierend auf PVC-Annotationen und Labels an, um zu bestimmen, ob die Anfrage direkt verarbeitet oder an Shift weitergeleitet wird
Migration Toolkit for Virtualization (MTV 2.12 oder höher)
-
Orchestriert Migrationspläne für virtuelle Maschinen
-
Probleme mit PVC-Anforderungen, die für die Speicherbereitstellung während der VM-Migration erforderlich sind
-
Fügt Anmerkungen hinzu, um die nachgelagerte Verarbeitung zu unterstützen
Bevor Sie beginnen
Es sollte sichergestellt sein, dass in Ihrer OpenShift-Umgebung die erforderlichen Komponenten installiert und konfiguriert sind, bevor der Shift Operator bereitgestellt wird.
-
Migration Toolkit for Virtualization Operator läuft in Version 2.12 oder höher
-
Trident wird über OpenShift OperatorHub "Trident Installationsanleitung" installiert
-
NetApp Shift wird als Container bereitgestellt, wobei der Shift-Endpunkt für NetApp Trident zugänglich ist
-
Eine Storage Class wird speziell für die Nutzung mit dem Shift Toolkit erstellt und annotiert.
-
Die Annotationen kennzeichnen das Shift Toolkit als den vorgesehenen Handler und geben das Ziel-Trident-Backend an.
-
MTV fügt den PVCs folgenden Vermerk hinzu:
forklift.konveyor.io/netapp-shift: "true"
Schritt 1: Shift Installer herunterladen und extrahieren
Das Shift Installationspaket enthält alles, was zum Bereitstellen des Shift Operators und zum Installieren von Shift erforderlich ist.
|
|
Falls Ihr Cluster keinen Zugriff auf quay.io hat, sollte dieser Schritt übersprungen werden und stattdessen der Offline-Installation (air-gapped Cluster)Vorgehensweise gefolgt werden. Zu Schritt 2 kann zurückgekehrt werden, sobald der Offline-Image-Import abgeschlossen ist. |
-
Laden Sie die neueste Version des Shift Installationsprogramms von "NetApp Support-Site-Toolchest" herunter.
-
Das Installationspaket entpacken:
tar -xf Shift-installer-1.0.0.tar.gz -
Wechseln in das Installationsverzeichnis:
cd shift-installer
Schritt 2: Erstellen des Shift Namespace und der API-Zugangsdaten
Ein dedizierter Namespace für den Shift Operator wird eingerichtet und die für einen sicheren API-Zugriff erforderlichen Anmeldeinformationen werden erstellt.
-
Den Shift Namespace erstellen:
oc create ns shift -
Das Geheimnis für den Shift API-Zugriff innerhalb des Shift-Namensraums erstellen. Die Beispielwerte durch einen eindeutigen Benutzernamen und ein starkes Passwort für Ihre Umgebung ersetzen:
oc create secret generic shift-credentials -n shift \ --from-literal=username='admin' \ --from-literal=password='admin'
|
|
Das Passwort ist durch einen gewünschten Wert zu ersetzen. |
Schritt 3: TLS-Zertifikat ConfigMaps erstellen
Die ConfigMaps, die das TLS-Zertifikat und den privaten Schlüssel bereitstellen, welche der Shift-Dienst zur Bereitstellung von HTTPS-Datenverkehr verwendet, werden erstellt.
Das Zertifikat muss mit CN/SAN auf shift-toolkit-service.shift.svc.cluster.local ausgestellt werden. Die Zertifikats- und Schlüsseldateien müssen server.cert bzw. server.key heißen.
-
Die ConfigMap für das TLS-Zertifikat erstellen:
oc create configmap shift-toolkit-service-server-crt -n shift \ --from-file=server.cert=server.cert -
Den ConfigMap für den privaten TLS-Schlüssel erstellen:
oc create configmap shift-toolkit-service-server-key -n shift \ --from-file=server.key=server.key
|
|
Wenn HTTPS nicht verwendet wird, setzen Sie INSECURE_TLS=true in bundle.yaml. Die erforderlichen ConfigMaps sollten dennoch wie oben beschrieben erstellt werden, auch wenn HTTPS deaktiviert ist und die TLS-Zertifikate nicht aktiv verwendet werden.
|
Schritt 4: Erstellen Sie das CA-Bundle ConfigMap
Die ConfigMap erstellen, die das CA-Bundle bereitstellt, das der PVC-Listener zur Überprüfung des TLS-Zertifikats des Shift-Dienstes verwendet.
-
Zeigen Sie
--from-file`auf die `server.certPEM-Datei.Der Schlüssel in der ConfigMap muss
ca.crtsein. Mit dieser ConfigMap läuft der Listener mitINSECURE_TLS=falseund überprüft das Shift-Zertifikat anhand dieses Bundles mitSHIFT_CA_CERT_FILE. -
Das ConfigMap für das CA-Bundle erstellen:
oc create configmap shift-toolkit-service-ca -n shift \ --from-file=ca.crt=ca.cert
Schritt 5: Persistente Volume Claims erstellen
Die für die Shift filedb (Datenbank) und Protokolle erforderlichen PVCs sollten vor der Bereitstellung des Bundles erstellt werden.
-
Bevor die PVC-Definitionen angewendet werden, sollten
deploy/filedb-pvc.yamlunddeploy/logs-pvc.yamlaktualisiert werden, um das passendestorageClassNamefür Ihren Cluster anzugeben (zum Beispielontap-storageclass).Diese PVCs müssen erstellt und verfügbar sein, bevor das Bundle in Schritt 6: Bereitstellung des Shift-Operators bereitgestellt wird. -
Das filedb PVC-Manifest anwenden:
oc apply -f deploy/filedb-pvc.yaml -
Das Protokoll-PVC-Manifest anwenden:
oc apply -f deploy/logs-pvc.yaml
Schritt 6: Den Shift Operator bereitstellen
Die Shift-Operatorkonfiguration wird auf das OpenShift-Cluster angewendet und es wird überprüft, ob die erforderlichen Pods erfolgreich ausgeführt werden.
-
Im Verzeichnis shift-installer den Befehl deploy ausführen:
oc apply -f deploy/shift-bundle.yaml -
Die Installation kann anhand des Pod-Erstellungsstatus überprüft werden:
oc get pods -n shiftBeispielausgabe:
NAME READY STATUS RESTARTS AGE shift-68ccd597c-dtsj7 1/1 Running 0 18s shift-pvc-listener-57d546f6b8-r9mgc 1/1 Running 0 18s
|
|
Zum Aufheben der Bereitstellung den Befehl oc delete -f deploy/bundle.yaml --ignore-not-found ausführen. Dieser Befehl entfernt die durch bundle.yaml bereitgestellten Ressourcen, wobei Namespace und Secret erhalten bleiben.
|
Schritt 7: Die Storage Class für die Shift-Integration konfigurieren
Eine neue Storage Class erstellen oder eine bestehende Storage Class mit den erforderlichen Annotationen für die Shift Integration aktualisieren.
Die Speicherklasse muss die folgenden Annotationen enthalten:
-
shift.netapp.io/storage-class-type -
shift.netapp.io/trident-backend-uuid
-
Die Speicherklasse wird mit den erforderlichen Annotationen gepatcht:
oc patch storageclass nimnas1172 \ --type=merge \ -p '{ "metadata": { "annotations": { "shift.netapp.io/storage-class-type": "shift", "shift.netapp.io/trident-backend-uuid": "facc3aad-83bb-423a-b6a1-ba0fb8811217" } } }'Beispielausgabe:
storageclass.storage.k8s.io/nimnas1172 patchedDie Backend-UUID kann durch Ausführen von oc get tbc -n tridentabgerufen werden -
Vorhandene Storage-Klassen überprüfen:
oc get scBeispielausgabe:
nimnas1172 (default) csi.trident.netapp.io Delete Immediate true
Schritt 8: MTV Plan erstellen und auslösen
Nach Abschluss der Bereitstellung des Shift Operators und der Konfiguration der Speicherklasse können Sie den MTV Plan erstellen und auslösen.
Detaillierte Informationen zur Erstellung des MTV-Plans sind in der "Migration Toolkit for Virtualization Dokumentation" zu finden.
Der folgende Screenshot zeigt die Abfolge der Schritte, die beim Auslösen des Migrationsplans ausgeführt werden.
Der folgende Screenshot zeigt die mit dem Shift-Toolkit konvertierten PVCs, die anschließend von NetApp Trident importiert wurden.
Migrationsplan erfolgreich abgeschlossen – 5 virtuelle Maschinen und etwa 5 TB Daten wurden in etwa 6 Minuten migriert.
Nach Abschluss der Migration muss jedes Klon-Volume getrennt werden. Die Trennmethode hängt von der ONTAP Version ab: Klon-Teilung wird für ONTAP 9.17.1 und höher verwendet, während für frühere Versionen vol move zum Einsatz kommt.
Sowohl Klon-Teilung als auch Vol Move sind Hintergrundoperationen und beeinträchtigen die Produktions-Workloads während ihrer Ausführung nicht. Ein Skript zum Starten des Trennungsprozesses ist im Widget Post Migrate Detach im NetApp Console Automation Catalog verfügbar.
Offline-Installation (air-gapped Cluster)
Dieser Abschnitt beschreibt einen alternativen Installationspfad für Cluster, die keinen Zugriff auf quay.io haben. Wenn Ihr Cluster quay.io erreichen kann, sollten stattdessen die Schritte 1–8 befolgt werden.
Für Cluster ohne Zugriff auf quay.io sollten die Image-Tarballs in die interne OpenShift-Registry importiert werden, bevor das Bundle bereitgestellt wird.
Es ist keine externe Registry-Route erforderlich. Sowohl die Image-Push-Operationen als auch die Bundle-Image-Referenzen verwenden image-registry.openshift-image-registry.svc:5000, das über das Cluster-Netzwerk zugänglich und durch die Cluster-CA gesichert ist.
-
`oc`CLI mit Cluster-Admin-Berechtigungen angemeldet
-
`skopeo`installiert
-
Image-Tarballs auf dem Host verfügbar:
-
shift-toolkit-1.0.0-image.tar -
shift-toolkit-listener-1.0.0-image.tar
-
-
Interne Registrierung aktivieren (einmaliger Schritt; überspringen, falls bereits konfiguriert):
oc patch configs.imageregistry.operator.openshift.io cluster \ --type=merge -p '{"spec":{"defaultRoute":true}}' oc get route default-route -n openshift-image-registry -
Registrierungsanmeldeinformationen mithilfe der aktiven
ocSitzung generieren:Verwenden Sie kein unformatiertes Dienstkontotoken, da dies beim Hochladen von Blobs zu Fehlern führen kann. Verwenden Sie
oc registry loginzum Erstellen einer Authentifizierungsdatei, die mit dem Registry-Umleitungsablauf kompatibel ist.REGISTRY=image-registry.openshift-image-registry.svc:5000 oc registry login --skip-check \ --registry=$REGISTRY \ --to=/tmp/registry-auth.json -
Das Shift Toolkit-Image in die interne Registry übertragen:
skopeo copy \ docker-archive:shift-toolkit-1.0.0-image.tar \ docker://$REGISTRY/shift/shift-toolkit:1.0.0 \ --dest-tls-verify=false \ --dest-authfile=/tmp/registry-auth.json -
Das Shift Toolkit Listener-Image in die interne Registry übertragen:
skopeo copy \ docker-archive:shift-toolkit-listener-1.0.0-image.tar \ docker://$REGISTRY/shift/shift-toolkit-listener:1.0.0 \ --dest-tls-verify=false \ --dest-authfile=/tmp/registry-auth.json -
Die Bildverweise in
deploy/bundle.yamlwerden aktualisiert, sodass die interne Registry verwendet wird:sed -i \ -e "s|quay.io/netapp/shift-toolkit:1.0.0|$REGISTRY/shift/shift-toolkit:1.0.0|g" \ -e "s|quay.io/netapp/shift-toolkit-listener:1.0.0|$REGISTRY/shift/shift-toolkit-listener:1.0.0|g" \ -e "s|imagePullPolicy: Always|imagePullPolicy: IfNotPresent|g" \ deploy/bundle.yaml -
Das Bundle bereitstellen:
oc apply -f deploy/bundle.yaml