Questo documento spiega come utilizzare il driver Container Storage Interface (CSI) di vSphere con Google Distributed Cloud.
Panoramica
Il driver CSI di vSphere viene deployment automaticamente quando installi Google Distributed Cloud (solo software) per VMware. Per informazioni sull'utilizzo di altri driver CSI, consulta Installare un driver CSI.
Requisiti di vSphere
Per utilizzare il driver CSI di vSphere, devi disporre di:
Espansione del volume
L'espansione offline del volume richiede che sia vCenter Server sia ESXi siano alla versione 7.0 Update 1 o successive
L'espansione online del volume richiede che sia vCenter Server sia ESXi siano alla versione 7.0 Update 2 o successive.
Snapshot volume
Lo snapshot volume richiede che sia vCenter Server sia ESXi siano alla versione 7.0 Update 3 o successive.
Cns.Searchable
L'account utente vCenter deve avere il Cns.Searchable sull'oggetto vCenter root.
Se non sai con certezza se il tuo account soddisfa i prerequisiti CSI, esegui gkectl diagnose cluster prima di eseguire il deployment di qualsiasi carico di lavoro CSI.
Verifica che il driver sia installato
Quando il driver CSI di vSphere viene installato nel cluster utente, viene creata una StorageClass denominata 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 di 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
Provisioning dei volumi
Per eseguire il provisioning dei volumi con il driver CSI di vSphere, imposta il storageClassName
campo di
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 StorageClass aggiuntive
Puoi creare StorageClass CSI di vSphere aggiuntive 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 comando seguente:
govc datastore.info DATASTORE_NAME
Sostituisci DATASTORE_NAME con il nome del tuo datastore vSphere.
Utilizza il valore di URL nell'output per datastoreurl. Un output di esempio è 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 dei volumi
I volumi di cui è stato eseguito il provisioning dal driver CSI di vSphere non vengono eliminati quando elimini un cluster utente. Prima di eliminare il cluster, devi eliminare tutti i PVC e StatefulSets prima di eliminare il cluster. Per eliminare i volumi, esegui il comando seguente:
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:
Seleziona un datastore.
Vai a Monitora > Archiviazione nativa per il cloud > Volumi container.
Nella sezione Dettagli di ogni volume, puoi visualizzare il nome del cluster Kubernetes.
Disattivazione del driver CSI di vSphere
Per rimuovere il supporto CSI di vSphere, 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