Gérer le cycle de vie des instances de VM

Ce document explique comment vérifier l'état du système d'une instance de machine virtuelle (VM) tout au long de son cycle de vie dans Google Distributed Cloud (GDC) air-gapped.

Une instance de VM peut passer par plusieurs états au cours de son cycle de vie. Lorsque vous créez une VM, Distributed Cloud 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, ou suspendue et réactivée, plusieurs fois tout au long de sa durée de vie.

Ce document s'adresse aux développeurs des groupes d'administrateurs de plate-forme ou d'opérateurs d'applications qui examinent l'état du système des instances de VM dans un environnement Distributed Cloud. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

Définitions des états des VM

État Définition
Pending La VM est acceptée par le système et est en attente d'allocation.
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 mise en pause et dans un état figé, qui est conservé. Impossible d'accéder à la VM.
Terminating La VM et ses 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 éléments suivants :
MachineTypeNotFound : le type de VM auquel la VM fait référence est introuvable ou est en cours de suppression.
MachineDiskMisconfig : le disque de la VM n'est pas configuré correctement.
InterfaceCreationFailed - Échec de la création de l'interface réseau.
CrashLoopBackOff La VM est dans une boucle de plantage et attend d'être relancée.
PendingIPAllocation La VM attend que le système lui attribue une adresse IP.
Unknown Impossible d'obtenir l'état de la VM, 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 requêtes de ressources ou de contraintes de planification qui ne peuvent pas être satisfaites ou prises en charge.
DiskError La VM présente une erreur avec un ou plusieurs des disques associés.
WaitingForDisk La VM attend qu'un ou plusieurs des VirtualMachineDisk associés soient prêts.
CrashLoopBackoff La VM plante systématiquement pour une raison quelconque.

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 d'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 d'API Management pour remplacer MANAGEMENT_API_SERVER dans ces instructions.

Demander des rôles IAM

Contactez l'administrateur de projet IAM pour demander les rôles suivants sur votre projet :

  • Administrateur de projet de machine virtuelle (project-vm-admin) : créez, modifiez, listez et supprimez des VM dans l'espace de noms du projet.

  • Lecteur de projet(project-viewer) : permet d'afficher toutes les ressources dans les espaces de noms du projet.

Tous les rôles de VM doivent être liés à l'espace de noms du projet dans lequel réside la VM. Suivez la procédure pour valider votre accès.

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 :

  • Si la VM présente des problèmes.
  • Pour confirmer 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.

Répertorier 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 \
      -n PROJECT \
      get virtualmachines.virtualmachine.gdc.goog
    

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

    VariableDéfinition
    MANAGEMENT_API_SERVER Fichier kubeconfig du serveur d'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 \
      -n PROJECT \
      get virtualmachines.virtualmachine.gdc.goog VM_NAME \
      -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 d'API Management que vous avez obtenu à l'aide de la commande gdcloud auth login.
    • VM_NAME par le nom de la nouvelle VM.
    • 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.
    

    Il est également possible que les champs Reason et Message soient vides. Cela indique que le système n'avait rien à signaler les concernant.

    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 la gérer de manière générale. Consultez ces pages pour arrêter, réinitialiser ou supprimer une VM :