Utilizzo del driver Container Storage Interface di vSphere

Questo documento spiega come utilizzare il driver CSI (Container Storage Interface) vSphere con Google Distributed Cloud.

Panoramica

Il driver CSI vSphere viene disegnato automaticamente quando installi Google Distributed Cloud (solo software) per VMware. Per informazioni sull'utilizzo di altri driver CSI, consulta Installazione di un driver CSI.

Requisiti di vSphere

Per utilizzare il driver CSI vSphere, devi disporre di:

Espansione del volume

  • L'espansione del volume offline richiede che sia vCenter Server sia ESXi siano nella versione 7.0 Update 1 o successive

  • L'espansione del volume online richiede che sia vCenter Server sia ESXi siano nella versione 7.0 Update 2 o successive.

Istantanea del volume

Lo snapshot del volume richiede che sia vCenter Server sia ESXi siano nella versione 7.0 Update 3 o successive.

Cns.Searchable

Il tuo account utente vCenter deve disporre del privilegio Cns.Searchable sull'oggetto vCenter principale.

Se non sai con certezza se il tuo account soddisfa i prerequisiti di CSI, esegui gkectl diagnose cluster prima di eseguire il deployment dei carichi di lavoro CSI.

Verificare che il driver sia installato

Quando il driver CSI vSphere è installato nel cluster utente, viene creato un StorageClass chiamato standard-rwo.

Elenca gli oggetti StorageClass:

kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass

Sostituisci CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster.

Verifica che standard-rwo venga visualizzato nell'output. Ad esempio:

standard                 kubernetes.io/vsphere-volume  Delete   Immediate     false      33m
standard-rwo (default)   csi.vsphere.vmware.com    Delete   Immediate     true       32m

Verifica che il driver CSI vSphere sia installato:

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

L'output dovrebbe indicare che il driver è disponibile su tutti i nodi del cluster. Ad esempio:

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

Eseguire il provisioning dei volumi

Per eseguire il provisioning dei volumi con il driver CSI vSphere, imposta il campo storageClassName del PersistentVolumeClaim su standard-rwo.

Configurazione della classe di archiviazione predefinita

Per impostare standard-rwo come classe di archiviazione predefinita, consulta Classe di archiviazione predefinita.

Utilizzo di uno snapshot per ripristinare un volume

Consulta Ripristinare un volume da uno snapshot.

Creazione di classi di archiviazione aggiuntive

Puoi creare ulteriori classi di archiviazione CSI vSphere nel cluster utilizzando i parametri datastoreurl o storagepolicyname.

L'esempio seguente utilizza il parametro storagepolicyname:

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

Per trovare il valore corretto per il parametro datastoreurl, esegui il seguente comando:

govc datastore.info DATASTORE_NAME

Sostituisci DATASTORE_NAME con il nome del datastore vSphere.

Utilizza il valore di URL dall'output per datastoreurl. Un esempio di output è il seguente:

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

Pulizia del volume

I volumi di cui è stato eseguito il provisioning dal driver CSI di vSphere non vengono eliminati quando elimini un cluster di utenti. Devi eliminare tutti i PVC e i StatefulSets prima di eliminare il cluster. Per eliminare i volumi, esegui il seguente comando:

kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all

Sostituisci MY_NAMESPACE con lo spazio dei nomi Kubernetes.

Se hai eliminato un cluster utente senza eliminare i relativi volumi, puoi trovarli nell'interfaccia utente di vSphere:

  1. Seleziona un datastore.

  2. Vai a Monitora > Storage nativo cloud > Volumi contenitore.

  3. Nella sezione Dettagli di ogni volume, puoi vedere il nome del cluster Kubernetes.

Disattivazione del driver CSI vSphere

Per rimuovere il supporto di vSphere CSI, aggiungi quanto segue alla configurazione del cluster utente:

# (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

Passaggi successivi