Ce document est destiné aux propriétaires d'applications qui utilisent l'environnement d'exécution de VM sur GDC pour exécuter des machines virtuelles (VM) dans GKE sur une solution Bare Metal. Ce document explique comment modifier des VM exécutées dans des clusters GKE sur des clusters Bare Metal. Par exemple, vous pouvez modifier l'allocation de ressources, telles que le processeur et la mémoire, ou modifier le réseau auquel une VM se connecte.
Vous pouvez modifier n'importe quel champ de la section spec
d'une ressource VirtualMachine
.
Vous pouvez également modifier les libellés d'une VM. Les autres champs, par exemple le nom de la VM (metadata.name
), ne peuvent pas être modifiés. Par défaut, votre VM doit être à l'état Stopped
avant de modifier la ressource. Toutefois, à partir de la version 1.13.0 de GKE sur Bare Metal, vous pouvez configurer votre ressource VirtualMachine
pour qu'elle redémarre automatiquement chaque fois que vous modifiez la configuration.
Si vos modifications apportées à la ressource VirtualMachine
contiennent des erreurs lorsque vous les enregistrez, les modifications sont rejetées et une notification s'affiche. Corrigez les erreurs et essayez d'enregistrer à nouveau la ressource VirtualMachine
. Si votre VM ne démarre pas après avoir effectué des modifications, utilisez la commande kubectl describe gvm VM_NAME
pour afficher les informations de dépannage et corriger les erreurs.
Avant de commencer
Pour suivre les instructions de ce document, vous devez disposer des ressources suivantes :
- Une VM qui s'exécute dans l'un de vos clusters. Si nécessaire, créez une VM dans GKE sur une solution Bare Metal.
- L'outil client
virtctl
, installé en tant que plug-in dekubectl
. Si nécessaire, installez l'outil client virtctl.
Modifier les ressources de calcul
Si vos besoins en charge de travail de calcul évoluent, vous pouvez mettre à jour le nombre de processeurs virtuels et la quantité de mémoire virtuelle que vous attribuez à vos VM. Pour modifier vos charges de travail de calcul, procédez comme suit :
Arrêtez la VM que vous souhaitez modifier :
kubectl virt stop VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous souhaitez arrêter.Utilisez
kubectl
pour modifier la VM :kubectl edit gvm VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous souhaitez modifier.Dans votre éditeur, mettez à jour les valeurs de ressources de calcul que vous souhaitez modifier.
Par exemple, l'exemple de fichier manifeste
VirtualMachine
suivant indique que2
processeurs virtuels sont attribués à la ressource de VM :apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... compute: cpu: vcpus: 2 ...
Si vous souhaitez mettre à jour le nombre de processeurs virtuels attribués, modifiez la valeur dans votre éditeur, comme indiqué dans l'exemple suivant :
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... compute: cpu: vcpus: 4 ...
Enregistrez et fermez le fichier manifeste de la VM.
Démarrez la VM que vous avez modifiée :
kubectl virt start VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous avez modifiée.Vérifiez le
STATUS
de votre VM :kubectl get gvm VM_NAME
Vérifiez que votre VM est à l'état
Running
. Si votre VM demande plus de ressources de calcul que l'hôte ne peut en fournir, elle ne peut pas démarrer. Si la VM n'est pas à l'étatRunning
, vérifiez le fichier manifeste de la ressourceVirtualMachine
et la disponibilité des ressources de calcul sur l'hôte.L'exemple de résultat suivant affiche la VM à l'état
Running
:NAME STATUS AGE IP vm1 Running 1m 192.168.2.72
Affichez des informations détaillées sur une VM en utilisant
kubectl describe gvm
:kubectl describe gvm VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous avez modifiée.L'exemple de résultat suivant affiche les informations condensées pour une VM, avec une modification du nombre de processeurs virtuels appliquée avec succès :
Name: vm1 Namespace: default Labels: <none> Annotations: <none> API Version: vm.cluster.gke.io/v1 Kind: VirtualMachine ... Spec: Compute: Cpu: Vcpus: 4 ...
Pour en savoir plus, découvrez comment créer des VM avec des configurations de processeur virtuel et de mémoire spécifiques.
Modifier les ressources de disque
Si vos besoins en stockage changent, vous pouvez ajouter ou supprimer des disques virtuels sur une VM. Pour modifier les disques associés à votre VM, procédez comme suit :
Arrêtez la VM que vous souhaitez modifier :
kubectl virt stop VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous souhaitez arrêter.Utilisez
kubectl
pour modifier la VM :kubectl edit gvm VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous souhaitez modifier.Dans votre éditeur, mettez à jour la section
spec.disks
pour associer ou dissocier des disques.Par exemple, l'exemple de fichier manifeste
VirtualMachine
suivant montre qu'un seul disque de démarrage est associé à la VM :apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... disks: - boot: true virtualMachineDiskName: vm1-boot-dv ...
Si vous souhaitez ajouter un disque vide existant, mettez à jour la configuration de disque dans votre éditeur, comme indiqué dans l'exemple suivant :
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... disks: - boot: true virtualMachineDiskName: vm1-boot-dv - virtualMachineDiskName: DISK_NAME ...
Remplacez
DISK_NAME
par le nom du disque à associer.Enregistrez et fermez le fichier manifeste de la VM.
Démarrez la VM que vous avez modifiée :
kubectl virt start VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous avez modifiée.Vérifiez le
STATUS
de votre VM :kubectl get gvm VM_NAME
Vérifiez que votre VM est à l'état
Running
. Si votre VM demande uneStorageClass
ou une attribution de disque que l'hôte ne peut pas fournir, votre VM ne peut pas démarrer. Si la VM n'est pas à l'étatRunning
, vérifiez vos fichiers manifestes de ressourcesVirtualMachine
etVirtualMachineDisk
, ainsi que la compatibilité de l'espace de stockage de l'hôte.Affichez des informations détaillées sur une VM en utilisant
kubectl describe gvm
:kubectl describe gvm VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous avez modifiée.L'exemple de résultat suivant affiche les informations condensées pour une VM, avec une modification des disques associés appliquée avec succès :
Name: vm1 Namespace: default Labels: <none> Annotations: <none> API Version: vm.cluster.gke.io/v1 Kind: VirtualMachine ... Spec: Disks: Name: vm1-boot-dv Name: data-disk-01 ...
Pour en savoir plus, découvrez comment créer et gérer des disques.
Modifier les ressources réseau
À mesure que votre infrastructure évolue, vous pouvez modifier la configuration réseau d'une VM. Par exemple, vous pouvez connecter la VM à un autre réseau virtuel ou attribuer manuellement une adresse IP. Pour modifier la configuration réseau d'une VM, procédez comme suit :
Arrêtez la VM que vous souhaitez modifier :
kubectl virt stop VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous souhaitez arrêter.Utilisez
kubectl
pour modifier la VM :kubectl edit gvm VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous souhaitez modifier.Dans votre éditeur, mettez à jour les paramètres de configuration réseau que vous souhaitez modifier.
Par exemple, l'exemple de fichier manifeste
VirtualMachine
suivant montre que la VM se connecte à un réseau nommébackend-vlan100
et utilise DHCP, car aucune adresse IP n'est définie :apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... interfaces: - name: eth0 networkName: backend-vlan100 default: true ...
Si vous souhaitez modifier le réseau auquel la VM se connecte ou attribuer une adresse IP manuelle, mettez à jour la configuration réseau dans votre éditeur, comme indiqué dans l'exemple suivant :
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... interfaces: - name: eth0 networkName: NETWORK_NAME ipAddresses: - IP_ADDRESS default: true ...
Remplacez
NETWORK_NAME
par le nom du réseau auquel vous connecter, ou ajoutez la sectionipAddresses
et spécifiez leIP_ADDRESS
à utiliser pour votre VM.Enregistrez et fermez le fichier manifeste de la VM.
Démarrez la VM que vous avez modifiée :
kubectl virt start VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous avez modifiée.Vérifiez le
STATUS
de votre VM :kubectl get gvm VM_NAME
Vérifiez que votre VM est à l'état
Running
. Si votre VM demande une connexion réseau que l'hôte ne peut pas fournir, elle ne peut pas démarrer. Si la VM n'est pas à l'étatRunning
, vérifiez le fichier manifeste de la ressourceVirtualMachine
et la compatibilité du réseau hôte.Affichez des informations détaillées sur une VM en utilisant
kubectl describe gvm
:kubectl describe gvm VM_NAME
Remplacez
VM_NAME
par le nom de la VM que vous avez modifiée.L'exemple de résultat suivant affiche les informations condensées pour une VM, avec une modification du fichier de configuration du réseau et des adresses IP appliquée avec succès :
Name: vm1 Namespace: default Labels: <none> Annotations: <none> API Version: vm.cluster.gke.io/v1 Kind: VirtualMachine ... Spec: Compute: Interfaces: Name: eth0 Network Name: backend-vlan200 ... Status: ... Interfaces: Dns Config: Nameservers: 8.8.8.8 gateway4: 10.200.0.9 Ip Addresses: 10.200.0.22/24 Mac Address: 22:b4:e3:d2:ef:fb Name: eth0 Resource Name: vm1-eth0-f2468 ...
Pour plus d'informations, découvrez comment créer et gérer des réseaux virtuels.
Configurer la VM pour les redémarrages automatiques
De nombreuses modifications de configuration de VM, telles que les modifications apportées aux paramètres compute
, nécessitent l'arrêt et le redémarrage de la VM pour que les modifications soient synchronisées avec l'instance de VM correspondante (VirtualMachineInstance
). Les VM exécutées dans GKE sur une version Bare Metal 1.13.0 ou ultérieure peuvent être configurées pour redémarrer automatiquement chaque fois que vous modifiez leur configuration. Lorsque vous configurez une VM pour utiliser cette fonctionnalité, vous n'avez pas besoin d'arrêter et de redémarrer une VM lorsque vous modifiez sa ressource personnalisée. L'environnement d'exécution de VM sur GDC surveille la VM et, s'il détecte une modification de configuration, il la redémarre automatiquement pour synchroniser les modifications.
Si vous utilisez Config Sync pour gérer vos fichiers de configuration YAML, cette fonctionnalité est particulièrement utile. Sans cette fonctionnalité, vous devez arrêter la VM manuellement avant d'apporter des modifications à la ressource personnalisée VirtualMachine
et démarrer la VM manuellement après avoir terminé vos modifications.
Pour activer les redémarrages automatiques, procédez comme suit :
Utilisez
kubectl
pour modifier la VM :kubectl edit gvm VM_NAME
Dans votre éditeur, ajoutez le champ
autoRestartOnConfigurationChange
et définissez-le surtrue
.Vous pouvez apporter des modifications supplémentaires à votre VM, telles que la mise à jour de la valeur
vcpus
. Si vous modifiez les paramètrescompute
, l'environnement d'exécution de VM sur GDC redémarre automatiquement votre VM lorsque vous enregistrez vos modifications.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: ... name: vm-sample-01 namespace: default resourceVersion: "16711824" uid: ed623879-0cfa-52de-ad2c-b63308e6116c spec: autoRestartOnConfigurationChange: true compute: cpu: vcpus: 2 ...
Enregistrez et fermez le fichier manifeste de la VM.
Si vous avez apporté d'autres modifications à la VM devant être synchronisées avec l'instance de VM correspondante, l'environnement d'exécution de VM sur GDC redémarre la VM. Si vous avez uniquement apporté la modification pour activer les redémarrages automatiques, aucun redémarrage de VM n'est nécessaire.
Vérifiez le
status
de votre VM :kubectl get gvm VM_NAME
Selon la vitesse à laquelle vous obtenez la VM, vous pouvez voir
state: Starting
lorsque la VM redémarre. Une fois la VM redémarrée,state: Running
s'affiche. Les modifications de configuration ultérieures apportées à la ressource personnaliséeVirtualMachine
ne nécessitent pas d'arrêter et de démarrer la VM manuellement. Les modifications apportées ultérieurement à la ressource personnalisée sont reflétées de manière cohérente dans l'instance de VM.
Observez le comportement de la situation suivante :
Si vous arrêtez manuellement une VM avant de modifier la ressource personnalisée
VirtualMachine
, la modification de la configuration ne déclenche pas de redémarrage. L'état de l'arrêt de la VM avant la modification de la configuration est conservé.Si vous avez effectué des changements de libellés ou de planification pour la VM avant l'activation de la fonctionnalité de redémarrage automatique, l'ajout à cette étape de
autoRestartOnConfigurationChange
sans aucune autre modification ne déclenche pas de redémarrage. Dans l'idéal, cette fonctionnalité permet de maintenir la cohérence de l'instance de VM avec la configuration de la VM. Toutefois, l'environnement d'exécution de VM sur GDC ne peut pas détecter les incohérences antérieures.
Étapes suivantes
- Créez des VM avec des configurations de vCPU et de calcul de la mémoire spécifiques dans GDCV pour Bare Metal.
- Créez et gérez des disques dans GDCV pour Bare Metal.
Créez et gérez des réseaux virtuels dans GDCV pour Bare Metal.