Créer et utiliser des classes de stockage dans l'environnement d'exécution des VM sur Google Distributed Cloud

Ce document est destiné aux propriétaires d'applications et aux administrateurs de plate-forme qui exécutent GKE sur une solution Bare Metal. Ce document explique comment créer et utiliser des classes de stockage pour les VM utilisant l'environnement d'exécution des VM sur Google Distributed Cloud. Un StorageClass vous permet de définir différentes configurations de stockage à fournir pour les différents besoins de vos VM.

Avant de commencer

Pour terminer ce document, vous devez accéder à un cluster GKE sur Bare Metal version 1.12.0 (anthosBareMetalVersion: 1.12.0) ou ultérieure. Vous pouvez utiliser n'importe quel type de cluster capable d'exécuter des charges de travail. Si nécessaire, essayez GKE sur Bare Metal sur Compute Engine ou consultez la présentation de la création de clusters.

Présentation des classes de stockage

Vous utilisez un StorageClass pour définir le type de stockage que vous mettez à la disposition des VM. Différentes classes de stockage peuvent correspondre à différents types de matériel de stockage, systèmes de fichiers ou niveaux de performances. Vous pouvez créer et utiliser des classes de stockage pour gérer vos charges de travail de calcul dans l'environnement d'exécution des VM sur Google Distributed Cloud. Pour plus d'informations, consultez le document Classes de stockage.

Un objet StorageClass par défaut peut être défini dans la ressource personnalisée pour l'environnement d'exécution des VM sur Google Distributed Cloud. Si vous ne définissez pas de classe spécifique lorsque vous créez une VirtualMachineDisks,, cette StorageClass par défaut est utilisée. Aucun fichier StorageClass initial n'est configuré et défini par défaut. Dans la section suivante, vous allez apprendre à définir ou mettre à jour cette StorageClass par défaut.

Définir ou mettre à jour la StorageClass par défaut

Au départ, aucune StorageClass par défaut n'est configurée pour GKE sur Bare Metal avec l'environnement d'exécution des VM sur Google Distributed Cloud. Pour créer un VirtualMachineDisk sans spécifier de StorageClass, vous devez d'abord créer un StorageClass puis le définir comme valeur par défaut.

Si vous souhaitez définir ou mettre à jour initialement la StorageClass par défaut utilisée par l'environnement d'exécution de VM sur Google Distributed Cloud lorsque vous créez une VirtualMachineDisk, mettez à jour la ressource personnalisée VMRuntime.

  1. Modifiez la ressource personnalisée VMRuntime :

    kubectl edit vmruntime
    
  2. Ajoutez ou mettez à jour la section spec.storage qui spécifie la valeur StorageClass par défaut à utiliser :

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      storage:
        defaultStorageClass: STORAGE_CLASS_NAME
    ...
    

    Modifiez STORAGE_CLASS_NAME avec le nom de la valeur par défaut StorageClass que vous souhaitez utiliser. Si vous devez d'abord créer un StorageClass, consultez la page Créer un StorageClass.

  3. Enregistrez et fermez la ressource personnalisée VMRuntime dans votre éditeur.

    Le StorageClass que vous avez spécifié est désormais utilisé lorsque vous créez un disque de machine virtuelle sans spécifier de StorageClass. La section suivante explique comment créer un disque et utiliser une ressource StorageClass spécifique.

    Les ressources VirtualMachineDisk existantes ne sont pas mises à jour pour utiliser le fichier StorageClass nouvellement spécifié.

Utiliser une ressource StorageClass spécifique

Si vous ne souhaitez pas utiliser la valeur StorageClass par défaut lorsque vous créez une VirtualMachineDisk, utilisez le champ storageClassName pour spécifier une autre StorageClass.

Pour utiliser une StorageClass spécifique et déjà définie lorsque vous créez un VirtualMachineDisk, procédez comme suit :

  1. Créez un fichier manifeste VirtualMachineDisk, tel que my-disk.yaml, dans l'éditeur de votre choix :

    nano my-disk.yaml
    
  2. Copiez et collez le fichier manifeste YAML suivant :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
      storageClassName: STORAGE_CLASS_NAME
    

    Remplacez les valeurs suivantes :

    • DISK_NAME : nom de votre disque.
    • STORAGE_CLASS_NAME : StorageClass à utiliser pour votre disque. StorageClass doit déjà exister. Si vous devez d'abord créer une StorageClass, consultez la page Créer une ressource StorageClass.
  3. Enregistrez et fermez le fichier manifeste de disque dans votre éditeur.

  4. Créez le disque en utilisant kubectl :

    kubectl apply -f my-disk.yaml
    

Configurer des profils de stockage

Les profils de stockage fournissent des options de configuration supplémentaires associées à chaque StorageClass. Ces options de configuration incluent le mode d'accès et le mode de volume à utiliser pour les VirtualMachineDisks qui utilisent la StorageClass.

Sans profil de stockage configuré, les disques utilisent par défaut le mode d'accès ReadWriteOnce. Ce mode d'accès n'est pas suffisant pour les charges de travail de production, car des fonctionnalités telles que la migration à chaud ne fonctionnent pas. Le mode de volume par défaut sans profil de stockage configuré est Filesystem.

L'environnement d'exécution des VM sur Google Distributed Cloud génère automatiquement un profil de stockage pour chaque StorageClass d'un cluster. Le profil de stockage porte le même nom que l'identifiant StorageClass associé. L'exemple de résultat suivant montre que le cluster comporte quatre classes de stockage ainsi que des profils associés :

  $ kubectl get storageprofiles

  NAME            AGE
  anthos-system   11d
  node-disk       11d
  standard        11d
  nfs             11d

Pour modifier un profil de stockage et changer le mode d'accès ou le volume, procédez comme suit :

  1. Modifiez la ressource personnalisée StorageProfile que vous souhaitez éditer :

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Remplacez STORAGE_PROFILE_NAME par le StorageProfile que vous souhaitez modifier.

  2. Ajoutez une seule entrée à la liste spec.claimPropertySets du fichier StorageProfile :

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: nfs
    spec:
      claimPropertySets:
      - accessModes:
        - ACCESS_MODE
        volumeMode: VOLUME_MODE
    

    Les fichiers accessMode et volumeMode utilisent les composants Kubernetes sous-jacents. Les valeurs que vous définissez dépendent du pilote de stockage que vous utilisez. Remplacez les valeurs suivantes en fonction du stockage que vous utilisez :

    • ACCESS_MODE : mode d'accès que vous souhaitez utiliser. Si compatible avec la StorageClass associée, le mode d'accès préféré est ReadWriteMany.
      • Les valeurs acceptables incluent ReadWriteOnce, ReadOnlyMany, ReadWriteMany, et ReadWriteOncePod. S'il n'est pas spécifié, ReadWriteOnce est utilisé en fonction des valeurs par défaut de l'environnement d'exécution des VM sur Google Distributed Cloud. Pour plus d'informations, consultez la section Modes d'accès.
    • VOLUME_MODE : mode de volume que vous souhaitez utiliser.
      • Les valeurs acceptables incluent Filesystem et Block. Si aucune valeur n'est spécifiée, Filesystem est utilisé en fonction des valeurs par défaut de Kubernetes. Pour plus d'informations, consultez la section Modes de volume.
  3. Enregistrez et fermez la ressource personnalisée StorageProfile dans votre éditeur.

    Les paramètres de profil de stockage que vous avez définis sont utilisés lorsque vous créez des disques virtuels. Les ressources VirtualMachineDisk existantes ne sont pas mises à jour pour utiliser les paramètres de profil de stockage définis.

Étapes suivantes