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
.
Modifiez la ressource personnalisée
VMRuntime
:kubectl edit vmruntime
Ajoutez ou mettez à jour la section
spec.storage
qui spécifie la valeurStorageClass
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éfautStorageClass
que vous souhaitez utiliser. Si vous devez d'abord créer unStorageClass
, consultez la page Créer unStorageClass
.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 deStorageClass
. 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 fichierStorageClass
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 :
Créez un fichier manifeste
VirtualMachineDisk
, tel quemy-disk.yaml
, dans l'éditeur de votre choix :nano my-disk.yaml
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 uneStorageClass
, consultez la page Créer une ressource StorageClass.
Enregistrez et fermez le fichier manifeste de disque dans votre éditeur.
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 :
Modifiez la ressource personnalisée
StorageProfile
que vous souhaitez éditer :kubectl edit storageprofile STORAGE_PROFILE_NAME
Remplacez
STORAGE_PROFILE_NAME
par leStorageProfile
que vous souhaitez modifier.Ajoutez une seule entrée à la liste
spec.claimPropertySets
du fichierStorageProfile
:apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODE
Les fichiers
accessMode
etvolumeMode
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 laStorageClass
associée, le mode d'accès préféré estReadWriteMany
.- Les valeurs acceptables incluent
ReadWriteOnce
,ReadOnlyMany
,ReadWriteMany
, etReadWriteOncePod
. 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.
- Les valeurs acceptables incluent
VOLUME_MODE
: mode de volume que vous souhaitez utiliser.- Les valeurs acceptables incluent
Filesystem
etBlock
. 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.
- Les valeurs acceptables incluent
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
- Créez et gérez des disques dans GKE sur Bare Metal.
Créer et utiliser des identifiants pour importer des images à partir de Cloud Storage