Définir la classe de stockage par défaut

Cette page explique comment définir la classe de stockage par défaut pour un cluster GKE On-Prem. Consultez également la page Stockage.

Présentation

GKE On-Prem peut s'intégrer au stockage de blocs ou de fichiers en utilisant l'un des mécanismes suivants :

Lorsque vous créez un cluster, GKE On-Prem crée un objet StorageClass nommé standard. Il s'agit de la StorageClass par défaut du cluster.

Pour afficher des informations détaillées sur la ressource StorageClass standard, saisissez la commande suivante :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

[CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig du cluster.

Dans le résultat, vous pouvez voir que le nom de la ressource StorageClass est standard. Vous pouvez également voir l'annotation storageclass.kubernetes.io/is-default-class: "true". Cette annotation identifie la ressource StorageClass nommée standard comme étant la ressource StorageClass par défaut.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: standard
  ...
parameters:
  datastore: HOST2-DATASTORE2
  diskformat: thin
  fstype: ext4
provisioner: kubernetes.io/vsphere-volume
reclaimPolicy: Delete
volumeBindingMode: Immediate

Votre cluster peut contenir plusieurs objets StorageClass, mais un seul d'entre eux peut comporter l'annotation storageclass.kubernetes.io/is-default-class: "true" et, par conséquent, être la ressource StorageClass par défaut.

Dans le résultat précédent, vous pouvez également constater que l'approvisionneur est kubernetes.io/vsphere-volume. Il s'agit de l'approvisionneur qui prend les mesures nécessaires lorsqu'un client demande une partie de l'espace de stockage de la classe standard.

StorageClass par défaut

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 déployer un pilote CSI sur le cluster.

Cette étape dépend de votre fournisseur de stockage. Les fournisseurs doivent fournir des instructions de déploiement. Les fournisseurs doivent communiquer des instructions concernant le déploiement de leur pilote CSI sur un cluster Kubernetes.

Supprimez l'annotation par défaut de la StorageClass standard.

Pour ouvrir le fichier manifeste de la ressource StorageClass standard dans un éditeur de texte, saisissez la commande suivante :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] edit storageclass standard

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, entrez la commande suivante :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

Créer un objet 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 dans un fichier et créez le nouvel objet 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.

Étapes suivantes