In diesem Dokument wird erläutert, wie Sie den CSI-Treiber (vSphere Container Storage Interface) mit Google Distributed Cloud verwenden.
Überblick
Der vSphere-CSI-Treiber wird automatisch in GKE on VMware bereitgestellt. Informationen zur Verwendung anderer CSI-Treiber finden Sie unter CSI-Treiber installieren.
vSphere-Anforderungen
Damit Sie den vSphere-CSI-Treiber verwenden können, müssen folgende Voraussetzungen erfüllt sein:
Eine Linux-basierte unterstützte Version von vCenter Server
Volume-Erweiterung
Für die Offline-Volume-Erweiterung müssen vCenter Server und ESXi in der Version 7.0 Update 1 oder höher sein.
Für die Online-Volume-Erweiterung müssen vCenter Server und ESXi in der Version 7.0 Update 2 oder höher sein.
Volume-Snapshot
Für den Volume-Snapshot müssen sowohl vCenter Server als auch ESXi Version 7.0 Update 3 oder höher installiert sein.
Cns.Searchable
Ihr vCenter-Nutzerkonto muss die Berechtigung Cns.Searchable für das vCenter-Root-Objekt haben.
Wenn Sie nicht sicher sind, ob Ihr Konto die CSI-Voraussetzungen erfüllt, führen Sie gkectl diagnose cluster
aus, bevor Sie CSI-Arbeitslasten bereitstellen.
Prüfen, ob der Treiber installiert wurde
Wenn der vSphere-CSI-Treiber in Ihrem Nutzercluster installiert ist, wird eine StorageClass namens standard-rwo
erstellt.
Listen Sie die Speicherklassenobjekte auf:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Ersetzen Sie CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Clusters.
Prüfen Sie, ob standard-rwo
in der Ausgabe angezeigt wird. Beispiel:
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
Prüfen Sie, ob der vSphere-CSI-Treiber installiert ist:
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \ -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
Die Ausgabe sollte anzeigen, dass der Treiber auf allen Clusterknoten verfügbar ist. Beispiel:
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
Volumes bereitstellen
Legen Sie zum Bereitstellen von Volumes mit dem vSphere CSI-Treiber das Feld storageClassName
Ihres PersistentVolumeClaim auf standard-rwo
fest.
Standard-Speicherklasse festlegen
Informationen zum Festlegen von standard-rwo
als Standardspeicherklasse finden Sie unter Standardspeicherklasse.
Volume mithilfe eines Snapshots wiederherstellen
Weitere Informationen finden Sie unter Volume aus einem Snapshot wiederherstellen.
Zusätzliche StorageClasses erstellen
Sie können mit den Parametern datastoreurl
oder storagepolicyname
weitere vSphere CSI-StorageClasses in Ihrem Cluster erstellen.
Im folgenden Beispiel wird der Parameter storagepolicyname
verwendet:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gold parameters: csi.storage.k8s.io/fstype: ext4 storagepolicyname: "Gold Policy" provisioner: csi.vsphere.vmware.com
Führen Sie den folgenden Befehl aus, um den richtigen Wert für den Parameter datastoreurl
zu ermitteln:
govc datastore.info DATASTORE_NAME
Ersetzen Sie DATASTORE_NAME durch den Namen Ihres vSphere-Datenspeichers.
Verwenden Sie den Wert für URL aus der Ausgabe für datastoreurl
. Eine Beispielausgabe sieht so aus:
Name: DATASTORE_NAME Path: /DATACENTER_NAME/datastore/DATASTORE_NAME Type: VMFS URL: ds:///vmfs/volumes/5d864fa0-7f2184d4-8eb4-3cfdfe0ce9a0/ Capacity: 20479.8 GB Free: 10066.9 GB
Volume-Bereinigung
Vom vSphere-CSI-Treiber bereitgestellte Volumes werden nicht gelöscht, wenn Sie einen Nutzercluster löschen. Löschen Sie alle PVCs und StatefulSets, bevor Sie den Cluster löschen. Führen Sie den folgenden Befehl aus, um Ihre Volumes zu löschen:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
Ersetzen Sie MY_NAMESPACE durch Ihren Kubernetes-Namespace.
Wenn Sie einen Nutzercluster gelöscht haben, ohne die zugehörigen Volumes zu löschen, finden Sie die Volumes in der vSphere-Benutzeroberfläche:
Wählen Sie einen Datenspeicher aus.
Gehen Sie zu Überwachen > Cloudnativer Speicher > Container-Volumes.
Im Abschnitt Details jedes Volumes können Sie den Namen des Kubernetes-Clusters sehen.
vSphere-CSI-Treiber deaktivieren
Zum Entfernen der vSphere-CSI-Unterstützung fügen Sie der Nutzerclusterkonfiguration Folgendes hinzu:
# (Optional) Storage specification for the cluster storage: # To disable the vSphere CSI driver, set this to true. The value is set to false by default and # the vSphere CSI driver is enabled by default on vSphere version >= 6.7U3. vSphereCSIDisabled: true
Nächste Schritte
- Weitere Informationen zu Speicherkonzepten von GKE on VMware
- Standard-StorageClass für den Cluster festlegen