Mit dem vSphere-CSI-Treiber (Container Storage Interface) arbeiten

In diesem Dokument wird erläutert, wie Sie den CSI-Treiber (vSphere Container Storage Interface) mit GKE on VMware verwenden.

Überblick

Der vSphere-CSI-Treiber wird in GKE on VMware automatisch bereitgestellt. Informationen zur Verwendung anderer CSI-Treiber finden Sie unter CSI-Treiber installieren.

vSphere-Anforderungen

Sie benötigen Folgendes, um den vSphere-CSI-Treiber verwenden zu können:

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 einen Volume-Snapshot müssen sowohl vCenter Server als auch ESXi Version 7.0 Update 3 oder höher 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 Speicherklasse-Objekte 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

Wenn Sie Volumes mit dem vSphere-CSI-Treiber bereitstellen möchten, legen Sie das Feld storageClassName von PersistentVolumeClaim auf standard-rwo fest.

Standard-Speicherklasse festlegen

Informationen zum Festlegen von standard-rwo als Standardspeicherklasse finden Sie unter Standardspeicherklasse.

Volume über einen Snapshot 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 seine Volumes zu löschen, finden Sie die Volumes in der vSphere-Benutzeroberfläche:

  1. Wählen Sie einen Datenspeicher aus.

  2. Gehen Sie zu Überwachen > Cloudnativer Speicher > Container-Volumes.

  3. Im Abschnitt Details jedes Volumes wird der Name des Kubernetes-Clusters angezeigt.

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