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

In diesem Dokument wird erläutert, wie der CSI-Speichertreiber (Container Storage Interface) auf Google Distributed Cloud verwendet wird.

Übersicht

Der vSphere-CSI-Treiber wird automatisch bereitgestellt, wenn Sie Google Distributed Cloud (nur Software) für VMware installieren. Informationen zu anderen CSI-Treibern finden Sie unter CSI-Treiber installieren.

vSphere-Anforderungen

Für die Verwendung des vSphere-CSI-Treibers sind folgende Voraussetzungen erforderlich:

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 Volume Snapshot müssen vCenter Server und ESXi Version 7.0 Update 3 oder höher haben.

Cns.Searchable

Ihr vCenter-Nutzerkonto muss die Berechtigung Cns.Searchable für das vCenter-Stammobjekt 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 StorageClass-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. Beispiele:

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. Beispiele:

NAME     DRIVERS
node-0   csi.vsphere.vmware.com
node-1   csi.vsphere.vmware.com
node-2   csi.vsphere.vmware.com

Volumes bereitstellen

Zum Bereitstellen von Volumes mit dem vSphere CSI-Treiber legen Sie für das Feld storageClassName Ihres PersistentVolumeClaim den Wert standard-rwo fest.

Standard-Speicherklasse festlegen

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

Volume mit einem 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 dessen Volumes zu löschen, finden Sie die Volumes in der vSphere-Benutzeroberfläche:

  1. Datenspeicher auswählen

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

  3. Im Abschnitt Details jedes Volumes sehen Sie den Namen des Kubernetes-Clusters.

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