Démarrer et arrêter une VM

Ce document explique comment démarrer, arrêter et redémarrer une instance de machine virtuelle (VM) dans Google Distributed Cloud (GDC) sous air gap.

Vous pouvez arrêter, démarrer et redémarrer des VM pour gérer le cycle de vie de vos applications. Par exemple, vous pouvez modifier le nombre d'unités de traitement centralisées virtuelles (vCPU) attribuées ou la quantité de mémoire allouée à une VM. Vous devez arrêter la VM avant de modifier la configuration. Une fois que vous avez terminé, vous devez arrêter l'état d'alimentation pour appliquer les modifications.

Ce document est destiné aux développeurs des groupes d'administrateurs de plate-forme ou d'opérateurs d'applications qui doivent démarrer, arrêter et redémarrer des instances de VM dans un environnement Distributed Cloud. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

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 gdcloud CLI. Toutes les commandes de 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 de l'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.

Si vous souhaitez réduire le temps de démarrage de votre VM, suivez les instructions de la section Réduire le temps de démarrage de la VM avant de démarrer votre VM.

Demander des rôles IAM

Contactez l'administrateur IAM de votre projet 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) : affichez 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 les étapes pour vérifier votre accès.

Arrêter une VM

Lorsque vous arrêtez une machine virtuelle (VM), l'hyperviseur libère toutes les ressources associées à l'instance. La VM est éteinte.

Arrêtez une VM en cours d'exécution à l'aide de la console GDC ou de kubectl.

Console

  1. Dans le menu de navigation, cliquez sur Machines virtuelles > Instances.

  2. Dans la liste des VM, cochez la case correspondant à la VM en cours d'exécution que vous souhaitez arrêter.

  3. Cliquez sur Arrêter.

  4. Dans la boîte de dialogue de confirmation, cliquez sur Arrêter.

gdcloud

Pour arrêter une VM, procédez comme suit :

gdcloud compute instances stop VM_NAME \
  --project PROJECT
  • Remplacez VM_NAME par le nom de la VM.
  • Remplacez PROJECT par le nom du projet GDC dans lequel réside la VM.

kubectl

  1. Exécutez la commande suivante :

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       -n PROJECT \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. Recherchez le champ runningState dans la spec de la VM et remplacez la valeur du champ par Stopped. Si runningState ne se trouve pas dans la spec, ajoutez runningState à la spec et définissez la valeur sur Stopped.

    spec:
       runningState: Stopped
    
  3. Vérifiez l'état de la VM :

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

    Utilisez ces définitions pour les variables précédentes.

    VariableDéfinition
    MANAGEMENT_API_SERVER_KUBECONFIGFichier kubeconfig du serveur de l'API de gestion.
    VM_NAMENom de la VM.
    PROJECTNom du projet de la VM.

Démarrer une VM

Démarrez une VM à partir d'un état arrêté à l'aide de la console ou de kubectl.

Console

  1. Dans le menu de navigation, cliquez sur Machines virtuelles > Instances.

  2. Dans la liste des VM, cochez la case correspondant à la VM arrêtée que vous souhaitez démarrer.

  3. Cliquez sur Démarrer.

  4. Dans la boîte de dialogue de confirmation, cliquez sur Démarrer.

gdcloud

Pour démarrer une VM, procédez comme suit :

gdcloud compute instances start VM_NAME --project PROJECT
  • Remplacez VM_NAME par le nom de la VM.
  • Remplacez PROJECT par le nom du projet GDC dans lequel réside la VM.

kubectl

  1. Exécutez la commande suivante :

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n PROJECT \
      edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. Recherchez le champ runningState dans la spec de la VM et remplacez la valeur du champ par Running.

    spec:
       runningState: Running
    
  3. Vérifiez l'état de la VM :

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

    Utilisez ces définitions pour les variables de l'exemple de code.

    VariableDéfinition
    MANAGEMENT_API_SERVER_KUBECONFIGFichier kubeconfig du serveur de l'API de gestion.
    MANAGEMENT_API_SERVER_NAMENom du serveur de l'API Management.
    VM_NAMENom de la VM.
    PROJECTNom du projet de la VM.

Redémarrer une VM

Lorsque vous redémarrez une VM, la machine revient à son état initial et le contenu de la mémoire de la machine est effacé.

Redémarrez une VM en cours d'exécution à l'aide de la console ou de kubectl.

Console

  1. Dans le menu de navigation, cliquez sur Machines virtuelles > Instances.

  2. Dans la liste des VM, cochez la case correspondant à la VM en cours d'exécution que vous souhaitez redémarrer.

  3. Cliquez sur Réinitialiser.

  4. Dans la boîte de dialogue de confirmation, cliquez sur Réinitialiser.

gdcloud

Pour réinitialiser une VM, procédez comme suit :

gdcloud compute instances reset VM_NAME --project PROJECT
  • Remplacez VM_NAME par le nom de la VM.
  • Remplacez PROJECT par le nom du projet GDC dans lequel réside la VM.

kubectl

  1. Obtenez le certificat client, les données de clé et le serveur de l'API Management. Utilisez ces valeurs lors des étapes suivantes :

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      config view --raw -o \
      jsonpath='{.users[?(@.name =="MANAGEMENT_API_SERVER_NAME-admin")].user.client-certificate-data}' \
      | base64 -d > cert
    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      config view --raw -o \
      jsonpath='{.users[?(@.name == "MANAGEMENT_API_SERVER_NAME-admin")].user.client-key-data}' \
      | base64 -d > key
    export APISERVER=`kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       config view --raw -o \
       jsonpath='{.clusters[?(@.name == "MANAGEMENT_API_SERVER_NAME")].cluster.server}'`
    
  2. Effectuez une requête API pour redémarrer la VM à l'aide de la commande wget et spécifiez le certificat et la clé de l'étape précédente :

    wget --method=PUT -O- \
      --no-check-certificate \
      --certificate cert \
      --private-key key \
      --content-on-error=on \
      $APISERVER/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart
    
  3. Vérifiez l'état de la VM :

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

    Utilisez ces définitions pour les variables de l' exemple de code.

    VariableDéfinition
    MANAGEMENT_API_SERVER_KUBECONFIGFichier kubeconfig du serveur de l'API de gestion.
    MANAGEMENT_API_SERVER_NAMENom du serveur de l'API Management.
    VM_NAMENom de la VM.
    PROJECTNom du projet de la VM.