Gérer le cycle de vie des instances de VM

Une instance de VM peut passer par plusieurs états au cours de son cycle de vie. Lorsque vous créez une VM, Google Distributed Cloud (GDC) air-gapped provisionne des ressources pour la démarrer. La VM passe ensuite à l'état de démarrage, où elle est préparée pour son premier démarrage. Pendant et après le démarrage, une VM est considérée comme en cours d'exécution. Une VM en cours d'exécution peut être arrêtée et redémarrée plusieurs fois tout au long de sa durée de vie.

Définitions des états des VM

État Définition
Pending La VM est acceptée par le système et attend d'être attribuée.
Provisioning Les ressources associées à la VM, telles que VirtualMachineDisk, sont en cours de provisionnement et de préparation.
Starting La VM est en cours de préparation pour l'exécution.
Running La VM est en cours d'exécution.
Stopping La VM est en cours d'arrêt.
Stopped La VM est arrêtée et ne devrait pas démarrer.
Paused La VM est suspendue et à l'état figé, qui est conservé. Il est impossible d'accéder à la VM.
Terminating La VM et les ressources associées sont en cours de suppression.
ErrorConfiguration La VM présente une erreur de configuration. Les états de configuration non valides peuvent être dus aux problèmes suivants :
MachineTypeNotFound : le type de VM auquel la VM fait référence est introuvable ou en cours de suppression.
MachineDiskMisconfig : le disque de la VM est mal configuré.
InterfaceCreationFailed : échec de la création de l'interface réseau.
CrashLoopBackOff La VM se trouve dans une boucle de plantage et attend une nouvelle tentative.
PendingIPAllocation La VM attend que le système lui attribue une adresse IP.
Unknown L'état de la VM n'a pas pu être obtenu, généralement en raison d'une erreur de communication avec l'hôte sur lequel elle s'exécute.
ErrorUnschedulable Une erreur s'est produite lors de la planification de la VM, par exemple en raison de demandes de ressources ou de contraintes de planification qui ne peuvent pas être satisfaites ni prises en charge.
DiskError Une erreur s'est produite au niveau d'un ou de plusieurs disques associés à la VM.
WaitingForDisk La VM attend qu'un ou plusieurs VirtualMachineDisk associés soient prêts.
CrashLoopBackoff La VM plante systématiquement pour une raison inconnue.

Avant de commencer

Pour utiliser les commandes de l'interface de ligne de commande (CLI) gdcloud, assurez-vous d'avoir téléchargé, installé et configuré la CLI gdcloud. Toutes les commandes pour Distributed Cloud utilisent la CLI gdcloud ou kubectl et nécessitent un environnement de système d'exploitation (OS).

Obtenir le chemin d'accès au fichier kubeconfig

Pour exécuter des commandes sur le serveur de l'API Management, assurez-vous de disposer des ressources suivantes :

  1. Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.

  2. Utilisez le chemin d'accès au fichier kubeconfig du serveur de l'API Management pour remplacer MANAGEMENT_API_SERVER dans ces instructions.

Demander des autorisations et un accès

Pour effectuer les tâches listées sur cette page, vous devez disposer du rôle Administrateur VirtualMachine du projet. Suivez les étapes pour vérifier que vous disposez du rôle Administrateur VirtualMachine du projet (project-vm-admin) dans l'espace de noms du projet dans lequel réside la VM.

Pour les opérations sur les VM à l'aide de la console GDC ou de la CLI gdcloud, demandez à votre administrateur IAM de projet de vous attribuer le rôle Administrateur de machines virtuelles du projet et le rôle Lecteur du projet (project-viewer).

Vérifier l'état de la VM

L'état de chaque VM est indiqué dans ses propriétés. Vérifiez l'état d'une VM pour l'une des raisons suivantes :

  • En cas de problème avec la VM.
  • Pour vérifier que la VM est en cours d'exécution après son démarrage.
  • Pour vérifier que la VM est à l'état Paused ou Stopped.

Lister les VM pour vérifier leur état

La procédure suivante montre comment lister les VM, afficher leur état et obtenir des informations supplémentaires sur leur état.

  1. Répertoriez toutes les VM et affichez l'état de chacune d'elles :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachines.virtualmachine.gdc.goog -n PROJECT
    

    Remplacez les variables dans les exemples de code par vos propres valeurs, conformément au tableau suivant.

    VariableDéfinition
    MANAGEMENT_API_SERVER Fichier kubeconfig du serveur de l'API Management.
    PROJECT Projet GDC dans lequel réside la VM.

    Exemple de résultat :

    NAME          STATUS                    AGE
    vm-1          Running                    1d
    vm-2          Stopped                    8d
    vm-3          ErrorConfiguration         1d
    
  2. Obtenez des informations supplémentaires sur l'état d'une VM spécifique :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT -o \
        jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'
    

    Remplacez les éléments suivants :

    • MANAGEMENT_API_SERVER par le fichier kubeconfig du serveur de l'API Management que vous avez obtenu à partir de la commande gdcloud auth login.
    • VM_NAME par le nom de la nouvelle VM.
    • Remplacez PROJECT par le projet GDC dans lequel réside la VM.

    Exemple de résultat affichant les valeurs Reason et Message :

    State: ErrorConfiguration
    Reason: MachineDiskNotFound
    Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.
    

    Vous pouvez également obtenir des champs vides pour Reason et Message. Cela signifie que le système n'a rien à signaler à leur sujet.

    Exemple de résultat avec Reason et Message vides :

    State: Running
    Reason:
    Message:
    

Arrêter ou redémarrer une VM

Au cours du cycle de vie d'une VM, vous devrez peut-être l'arrêter et la redémarrer, ou la supprimer pour répondre à un changement d'état ou pour la gérer de manière générale. Consultez les pages suivantes pour arrêter, réinitialiser ou supprimer une VM :