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 des clusters créés avec Google Distributed Cloud (logiciel uniquement) sur Bare Metal. Ce document explique comment modifier les VM exécutées dans les clusters Bare Metal. Par exemple, vous pouvez modifier l'allocation des ressources comme 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 Google Distributed Cloud, 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 un cluster 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_NAMERemplacez
VM_NAMEpar le nom de la VM que vous souhaitez arrêter.Utilisez
kubectlpour modifier la VM :kubectl edit gvm VM_NAMERemplacez
VM_NAMEpar 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
VirtualMachinesuivant indique que2processeurs 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_NAMERemplacez
VM_NAMEpar le nom de la VM que vous avez modifiée.Vérifiez le
STATUSde votre VM :kubectl get gvm VM_NAMEVé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 ressourceVirtualMachineet 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.72Affichez des informations détaillées sur une VM en utilisant
kubectl describe gvm:kubectl describe gvm VM_NAMERemplacez
VM_NAMEpar 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_NAMERemplacez
VM_NAMEpar le nom de la VM que vous souhaitez arrêter.Utilisez
kubectlpour modifier la VM :kubectl edit gvm VM_NAMERemplacez
VM_NAMEpar le nom de la VM que vous souhaitez modifier.Dans votre éditeur, mettez à jour la section
spec.diskspour associer ou dissocier des disques.Par exemple, l'exemple de fichier manifeste
VirtualMachinesuivant 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_NAMEpar 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_NAMERemplacez
VM_NAMEpar le nom de la VM que vous avez modifiée.Vérifiez le
STATUSde votre VM :kubectl get gvm VM_NAMEVérifiez que votre VM est à l'état
Running. Si votre VM demande uneStorageClassou 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 ressourcesVirtualMachineetVirtualMachineDisk, 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_NAMERemplacez
VM_NAMEpar 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_NAMERemplacez
VM_NAMEpar le nom de la VM que vous souhaitez arrêter.Utilisez
kubectlpour modifier la VM :kubectl edit gvm VM_NAMERemplacez
VM_NAMEpar 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
VirtualMachinesuivant montre que la VM se connecte à un réseau nommébackend-vlan100et 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_NAMEpar le nom du réseau auquel vous connecter, ou ajoutez la sectionipAddresseset 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_NAMERemplacez
VM_NAMEpar le nom de la VM que vous avez modifiée.Vérifiez le
STATUSde votre VM :kubectl get gvm VM_NAMEVé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 ressourceVirtualMachineet 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_NAMERemplacez
VM_NAMEpar 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 des clusters de version 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, 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
kubectlpour modifier la VM :kubectl edit gvm VM_NAMEDans votre éditeur, ajoutez le champ
autoRestartOnConfigurationChangeet 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 à synchroniser 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
statusde votre VM :kubectl get gvm VM_NAMESelon la vitesse à laquelle vous obtenez la VM, vous pouvez voir
state: Startinglorsque la VM redémarre. Une fois la VM redémarrée,state: Runnings'affiche. Les modifications de configuration ultérieures apportées à la ressource personnaliséeVirtualMachinene 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
autoRestartOnConfigurationChangesans 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 des VM sur GDC ne peut pas détecter les incohérences précédentes.
Étapes suivantes
- Créez des VM avec des configurations de processeur virtuel et de calcul de mémoire spécifiques.
- Créez et gérez des disques.