Questo documento spiega come utilizzare il driver vSphere Container Storage Interface (CSI) con GKE su VMware.
Panoramica
Il deployment del driver CSI vSphere viene eseguito automaticamente in GKE su 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 avere:
Una versione di vCenter Server supportata su Linux
Espansione volume
L'espansione del volume offline richiede che vCenter Server ed ESXi siano versioni 7.0 Update 1 o successive
L'espansione del volume online richiede la versione 7.0 Update 2 o successiva di vCenter Server ed ESXi.
Snapshot volume
Lo snapshot del volume richiede la versione 7.0 Update 3 o successiva di vCenter Server ed ESXi.
Cns.Searchable
Il tuo account utente vCenter deve disporre del privilegio Cns.Searchable per l'oggetto vCenter principale.
Se non hai la certezza che il tuo account soddisfi 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 vSphere viene installato nel cluster utente, viene creato un oggetto StorageClass denominato standard-rwo
.
Elenca gli oggetti StorageClass:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Sostituisci CLUSTER_KUBECONFIG con il percorso del file kubeconfig del tuo 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
Volumi di provisioning
Per eseguire il provisioning dei volumi con il driver CSI vSphere, imposta il campo storageClassName
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
Vedi Ripristinare un volume da uno snapshot.
Creazione di classi di archiviazione aggiuntive
Puoi creare classi di archiviazione CSI di vSphere aggiuntive nel cluster utilizzando i parametri datastoreurl
o storagepolicyname
.
Nell'esempio seguente viene utilizzato 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 questo comando:
govc datastore.info DATASTORE_NAME
Sostituisci DATASTORE_NAME con il nome del tuo datastore vSphere.
Utilizza il valore di URL dell'output per datastoreurl
. Un output di esempio ha il seguente aspetto:
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 vSphere non vengono eliminati quando si elimina un cluster utente. Prima di eliminare il cluster, devi eliminare tutti gli oggetti PVC e gli StatefulSets. Per eliminare i volumi, esegui questo comando:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
Sostituisci MY_NAMESPACE con il tuo spazio dei nomi Kubernetes.
Se hai eliminato un cluster utente senza eliminarne i volumi, puoi trovarli nell'interfaccia utente di vSphere:
Seleziona un datastore.
Vai a Monitor > Cloud Native Storage > Volumi dei container.
Nella sezione Dettagli di ogni volume, puoi visualizzare il nome del cluster Kubernetes.
Disabilitazione del driver CSI 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
Passaggi successivi
- Scopri di più sui concetti di archiviazione di GKE su VMware
- Imposta un valore predefinito di StorageClass per il cluster