Ce document explique comment utiliser le pilote CSI (Container Storage Interface) vSphere avec Google Distributed Cloud.
Présentation
Le pilote CSI vSphere est déployé automatiquement lorsque vous installez Google Distributed Cloud (logiciel uniquement) pour VMware. Pour en savoir plus concernant l'utilisation d'autres pilotes CSI, consultez la section Installer un pilote CSI.
Exigences concernant vSphere
Pour utiliser le pilote CSI vSphere, vous devez avoir :
Une version compatible de vCenter Server basée sur Linux
Expansion de volume
L'expansion de volume hors connexion nécessite que vCenter Server et ESXi soient en version 7.0 Mise à jour 1 ou une version ultérieure.
L'expansion de volume en ligne nécessite que vCenter Server et ESXi soient en version 7.0 Mise à jour 2 ou une version ultérieure.
Instantané de volume
L'instantané de volume nécessite que vCenter Server et ESXi soient en version 7.0 Mise à jour 3 ou ultérieure.
Cns.Searchable
Votre compte utilisateur vCenter doit disposer des droits Cns.Searchable sur l'objet vCenter racine.
Si vous ne savez pas si votre compte remplit ou non les conditions préalables liées au pilote CSI, exécutez gkectl diagnose cluster
avant de déployer des charges de travail CSI.
Vérifier que le pilote est installé
Lorsque le pilote CSI vSphere est installé dans votre cluster d'utilisateur, un objet StorageClass appelé standard-rwo
est créé.
Listez les objets StorageClass :
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Remplacez CLUSTER_KUBECONFIG par le chemin d'accès du fichier kubeconfig de votre cluster.
Vérifiez que standard-rwo
apparaît dans le résultat. Par exemple :
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
Vérifiez que le pilote CSI vSphere est installé :
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \ -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
Le résultat doit indiquer que le pilote est disponible sur tous les nœuds de votre cluster. Par exemple :
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
Provisionner des volumes
Pour provisionner des volumes avec le pilote CSI vSphere, définissez le champ storageClassName
de votre PersistentVolumeClaim sur standard-rwo
.
Définir la classe de stockage par défaut
Pour définir standard-rwo
comme classe de stockage par défaut, consultez la section Classe de stockage par défaut.
Utiliser un instantané pour restaurer un volume
Consultez la section Restaurer un volume à partir d'un instantané.
Créer des StorageClass supplémentaires
Vous pouvez créer des StorageClass CSI vSphere supplémentaires dans votre cluster à l'aide des paramètres datastoreurl
ou storagepolicyname
.
L'exemple suivant utilise le paramètre 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
Pour trouver la valeur correcte pour le paramètre datastoreurl
, exécutez la commande suivante :
govc datastore.info DATASTORE_NAME
Remplacez DATASTORE_NAME par le nom de votre datastore vSphere.
Utilisez la valeur de URL à partir de la sortie pour datastoreurl
. Voici un exemple de sortie :
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
Nettoyage des volumes
Les volumes provisionnés par le pilote CSI vSphere ne sont pas supprimés lorsque vous supprimez un cluster d'utilisateur. Vous devez supprimer tous les objets PVC et StatefulSets avant de supprimer le cluster. Pour supprimer vos volumes, exécutez la commande suivante :
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
Remplacez MY_NAMESPACE par votre espace de noms Kubernetes.
Si vous avez supprimé un cluster d'utilisateur sans supprimer ses volumes, vous pouvez trouver les volumes dans l'interface utilisateur vSphere :
Sélectionnez un datastore.
Accédez à Surveiller > Stockage cloud natif > Volumes de conteneurs.
Le nom du cluster Kubernetes est indiqué dans la section Détails de chaque volume.
Désactiver le pilote CSI vSphere
Pour supprimer la compatibilité avec CSI vSphere, ajoutez les éléments suivants à la configuration de votre cluster d'utilisateur :
# (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
Étape suivante
- En savoir plus sur les concepts de stockage de Google Distributed Cloud
- Définir une StorageClass par défaut pour votre cluster