In diesem Dokument wird erläutert, wie Sie mit dem StatefulSet CSI-Migrationstool zustandsorientierte Arbeitslasten von einem integrierten vSphere-Volume-Plug-in zum vSphere CSI-Treiber in Google Distributed Cloud migrieren.
In der folgenden Liste sehen Sie die Einführungsphase für dieses Tool pro Version:
- v1.0: GA
- v0.1: Vorschau
Unterstützte Google Distributed Cloud-Versionen: 1.30–1.28.
Überblick
Google Distributed Cloud lässt sich über VMware vSphere-Speicher, integrierte Kubernetes Volume-Plug-ins (oder „Treiber“) und Container Storage Interface (CSI)-Treiber in externe Block- oder Dateispeichersysteme integrieren.
Wenn die Kubernetes CSI-Migrationsfunktion aktiviert ist (Standardeinstellung in Version 1.15), funktioniert ein PersistentVolume, das vom integrierten vSphere-Volume-Plug-in unterstützt wird, weiterhin in einer reinen CSI-Umgebung. Die CSI-Migrationsfunktion leitet In-Tree-Plug-in-Vorgangsaufrufe an den CSI-Treiber weiter. Da die PersistentVolume-Spezifikation unveränderlich ist, wird sie weiterhin vom In-Tree-Plug-in unterstützt. Die verfügbaren Funktionen sind dieselben wie beim in-tree-volume plugin.
Der vollständige Umfang von CSI-Funktionen, z. B. Volume Expansion und Volume Snapshot, ist für solche Volumes nicht verfügbar. Damit Sie diese Funktionen nutzen können, müssen zustandsorientierte Arbeitslasten vollständig zu CSI migriert werden. Dazu müssen die PersistentVolumes, die vom vSphere CSI-Treiber unterstützt werden, neu erstellt werden. Mit dem CSI-Migrationstool können Sie zustandsorientierte Arbeitslasten zu CSI migrieren und den vollständigen Umfang der CSI-Funktionen nutzen.
Mit diesem Tool können Sie ein Rolling-Migration von PersistentVolume und PersistentVolumeClaim eines StatefulSet zu CSI durchführen, ohne dass es zu Ausfallzeiten der Anwendung kommt. Dieses Tool erstellt eine Sicherung der Kubernetes-Ressourcen in einem lokalen Verzeichnis und legt ReclaimPolicy vor der Migration auf Retain fest. So kommt es zu keinem Datenverlust.
Beschränkung
Das automatisierte Tool wird nur für Google Distributed Cloud-Versionen unterstützt, die vollständig unterstützt werden.
Es funktioniert nur mit StatefulSets. Sie können Preflight-Prüfungen mithilfe des Tools ausführen, um ein paar Sicherheitsprüfungen vor der Verwendung der Tools auszuführen.
./statefulset-csi-migration-tool preflight \
--kubeconfig ADMIN_KUBECONFIG \
--cluster-name USER_CLUSTER_NAME \
--sts-name STS_NAME \
--sts-namespace STS_NAMESPACE \
--intree-storageclass INTREE_STORAGECLASS \
--csi-storageclass CSI_STORAGECLASS
Ersetzen Sie dabei Folgendes:
ADMIN_KUBECONFIG: Pfad der Datei "kubeconfig" Ihres AdministratorclustersUSER_CLUSTER_NAME: Wenn das StatefulSet im Nutzercluster ausgeführt wird, geben Sie den Namen des Nutzerclusters an. Überspringen Sie dieses Flag, wenn die Arbeitslast im Administratorcluster ausgeführt wird.STS_NAME: Name des StatefulSets.STS_NAMESPACE: Namespace des StatefulSets.INTREE_STORAGECLASS: der Name der in-tree-StorageClass, der das PersistentVolume des StatefulSets unterstützt.CSI_STORAGECLASS: der Name der CSI-StorageClass, der das PersistentVolume des StatefulSets nach der Migration unterstützt.
Herunterladen
Laden Sie das Tool unter
gs://gke-on-prem-release/statefulset-csi-migration-tool/v1.0/statefulset-csi-migration-tool herunter.
Dieses Tool befindet sich in der Vorschau.
Vorgehensweise
In diesem Abschnitt werden die Schritte beschrieben, die zum Migrieren von StatefulSets vom integrierten internen vCP-Bereitsteller (kubernetes.io/vsphere-volume) in vSphere zum CSI-Bereitsteller (csi.vsphere.vmware.com) in vSphere erforderlich sind.
./statefulset-csi-migration-tool rolling-migration all \
--kubeconfig ADMIN_KUBECONFIG \
--cluster-name USER_CLUSTER_NAME \
--sts-name STS_NAME \
--sts-namespace STS_NAMESPACE \
--intree-storageclass INTREE_STORAGECLASS \
--csi-storageclass CSI_STORAGECLASS \
--working-directory WORKING_DIRECTORY
Ersetzen Sie dabei Folgendes:
ADMIN_KUBECONFIG: Pfad der Datei "kubeconfig" Ihres Administratorclusters
USER_CLUSTER_NAME: Wenn das StatefulSet im Nutzercluster ausgeführt wird, geben Sie den Namen des Nutzerclusters an. Überspringen Sie dieses Flag, wenn die Arbeitslast im Administratorcluster ausgeführt wird.
STS_NAME: Name des StatefulSets.
STS_NAMESPACE: Namespace des StatefulSets.
INTREE_STORAGECLASS: der Name der in-tree-StorageClass, der das PersistentVolume des StatefulSets unterstützt.
CSI_STORAGECLASS: der Name der CSI-StorageClass , der das PersistentVolume des StatefulSets nach der Migration unterstützt.
WORKING_DIRECTORY: das lokale Verzeichnis, in dem die Kubernetes-Ressourcenspezifikation des StatefulSets und seiner Pod-, PersistentVolumeClaim- und PersistentVolume-Spezifikationen gespeichert werden soll. Der Verzeichnisname muss für jedes StatefulSet eindeutig sein. Dieses Verzeichnis sollte leer sein oder nicht vorhanden sein. Idealerweise erstellen Sie dieses Verzeichnis nicht, damit das Tool es für Sie erstellen kann.
Mit diesem Befehl werden die folgenden Aufgaben ausgeführt:
Erstellt eine Sicherung des StatefulSets und seiner Abhängigkeiten wie PersistentVolume-, PersistentVolumeClaim- und Pod-Replikat-Spezifikationen im lokalen Arbeitsverzeichnis.
Löscht das StatefulSet mit der Löschrichtlinie für verwaiste Objekte. Mit diesem Schritt wird nur das StatefulSet gelöscht, nicht aber seine Abhängigkeiten wie die Pod-Replikate, PersistentVolume und PersistentVolumeClaim.
Migriert jeden Pod zu CSI-Treibern (ähnlich wie bei Option 1) und führt die folgenden Schritte aus:
a. Legt das Feld „ReclaimPolicy“ des PersistentVolume auf „Retain“ fest.
b. Löscht den Pod, das PersistentVolume und den PersistentVolumeClaim.
c. Konvertiert die vorhandene VMDK in eine FCD.
d. Erstellt das PersistentVolume, den PersistentVolumeClaim und den Pod neu.
Erstellt das StatefulSet neu. Das Feld „PVCTemplate“ in der Spezifikation verweist jedoch auf die CSI-StorageClass. Der StatefulSet-Controller sollte sich den verwaisten Replikaten wieder zuordnen.