Définir la ressource StorageClass par défaut

Un cluster utilisateur créé avec Google Distributed Cloud (logiciel uniquement) pour VMware comporte un ou plusieurs objets StorageClass, dont l'un est désigné comme StorageClass par défaut. Cette page explique comment définir la ressource StorageClass par défaut pour un cluster d'utilisateur. Pour en savoir plus, consultez la section Stockage.

Cette page s'adresse aux spécialistes du stockage qui configurent et gèrent les performances, l'utilisation et les dépenses liées au stockage. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud, consultez la section Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.

Rechercher l'objet StorageClass par défaut

Répertoriez tous les objets StorageClass :

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

Dans le résultat, vous pouvez voir quel objet StorageClass est défini par défaut. Par exemple, dans le résultat suivant, vous pouvez voir qu'un objet StorageClass nommé standard-rwo est l'objet StorageClass par défaut :

standard                      kubernetes.io/vsphere-volume
standard-rwo (default)        csi.vsphere.vmware.com

Lorsque vous demandez un espace de stockage, vous pouvez spécifier une ressource StorageClass. Si vous ne la définissez pas, la ressource StorageClass par défaut est utilisée. Par exemple, supposons que vous créiez un objet PersistentVolumeClaim qui ne spécifie pas de ressource StorageClass. Le contrôleur de volume traite la revendication en fonction de la ressource StorageClass par défaut.

Modifier la ressource StorageClass par défaut

En tant qu'administrateur de cluster, vous souhaiterez peut-être modifier la classe de stockage par défaut. Ainsi, toutes les requêtes de stockage qui ne spécifient pas de StorageClass seront traitées en fonction de la ressource StorageClass de votre choix. Cette section décrit la procédure à suivre pour modifier la valeur par défaut.

Déployer un nouveau système de stockage

Vous pouvez déployer un nouveau système de stockage et tous les composants logiciels permettant d'intégrer le nouveau mécanisme de stockage à un cluster Kubernetes. Par exemple, vous devrez peut-être installer un pilote CSI dans le cluster.

Cette étape dépend de votre fournisseur de stockage. Les fournisseurs doivent communiquer des instructions concernant le déploiement de leur pilote CSI sur un cluster Kubernetes. La documentation d'un pilote CSI doit également inclure les paramètres propres au pilote que vous fournissez dans votre ressource StorageClass, y compris le nom de l'approvisionneur.

Lorsque vous créez une ressource StorageClass pour votre nouveau système, vous devez lui attribuer un nom en fonction de ses propriétés (telles que "rapide" ou "hautement répliquée"), plutôt qu'en fonction du nom du pilote ou du système spécifique sous-jacent. Il sera alors plus facile d'assurer la cohérence des règles de stockage entre les clusters et les environnements.

Supprimer l'annotation par défaut de la ressource StorageClass standard

Ouvrez la ressource StorageClass par défaut dans un éditeur de texte :

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \
    DEFAULT_STORAGE_CLASS

Dans l'éditeur de texte, supprimez l'annotation storageclass.kubernetes.io/is-default-class: "true". Fermez l'éditeur de texte.

Pour vérifier que l'annotation a été supprimée, saisissez la commande suivante :

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \
    DEFAULT_STORAGE_CLASS --output yaml

Créer une StorageClass

Créez un fichier manifeste pour une nouvelle ressource StorageClass. Incluez l'annotation storageclass.kubernetes.io/is-default-class: "true". Exemple :

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: my-storage-class
  ...
parameters:
  ...
provisioner: [MY_PROVISIONER]
...

Enregistrez votre fichier manifeste sous forme de fichier YAML, puis créez la ressource StorageClass :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]

[MANIFEST_FILE] est le chemin d'accès au fichier manifeste de votre nouvelle ressource StorageClass.

Étape suivante