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

Auf dieser Seite wird erläutert, wie der CSI-Speichertreiber (Container Storage Interface) auf GKE On-Prem-Clustern verwendet wird.

Übersicht

Ab GKE On-Prem-Version 1.5 wird der vSphere-CSI-Treiber automatisch in GKE On-Prem-Clustern bereitgestellt. Informationen zu anderen CSI-Treibern finden Sie unter CSI-Treiber installieren.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

Verfügbarkeit des Treibers prüfen

Wenn der vSphere-CSI-Treiber in Ihrem Nutzercluster installiert ist, wird eine StorageClass namens standard-rwo erstellt. Führen Sie den folgenden Befehl aus, um zu prüfen, ob der Treiber auf allen Knoten verfügbar ist:

kubectl get csinode -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"

Es sollte folgende Ausgabe angezeigt werden:

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.

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

Dabei ist DATASTORE_NAME der Name 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

Dabei ist MY_NAMESPACE Ihr Kubernetes-Namespace.

Wenn Sie einen Nutzercluster gelöscht haben, ohne dessen Volumes zu löschen, finden Sie die Volumes in vCenter:

  1. Wählen Sie in vCenter einen Datenspeicher aus.

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

Der Kubernetes-Clustername wird im Abschnitt Details jedes Volumes 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

Weitere Informationen