Mettre à jour la location de VM


Cette page explique comment mettre à jour la location d'une VM en modifiant les libellés d'affinité de nœud de la VM.

Par défaut, Compute Engine déploie des VM sur des hôtes mutualisés. Sur les hôtes mutualisés, les VM partagent généralement des ressources hôtes avec des VM d'autres projets et clients. Lorsque vous déplacez une VM vers un nœud à locataire unique, votre projet dispose d'un accès exclusif et d'un contrôle total sur les ressources matérielles du nœud à locataire unique. Vous êtes le seul locataire sur ce nœud. Vos charges de travail sont isolées des charges de travail d'autres projets et de leurs VM.

En modifiant les libellés d'affinité des nœuds, vous pouvez déplacer une VM comme suit :

  • D'un hôte mutualisé vers un nœud ou groupe de nœuds à locataire unique
  • D'un groupe de nœuds à locataire unique vers un hôte mutualisé
  • D'un nœud à locataire unique vers un autre nœud ou groupe de nœuds à locataire unique
  • D'un groupe de nœuds à locataire unique vers un autre groupe de nœuds ou un nœud à locataire unique.

Déplacer temporairement des charges de travail vers une location unique

En raison des exigences variables de vos charges de travail, telles que des besoins périodiques d'isolation supplémentaire pour examiner les performances ou des modifications de vos réglementations de conformité, vous devrez peut-être déplacer temporairement des charges de travail spécifiques vers des nœuds à locataire unique. Ensuite, lorsque vous n'avez plus besoin d'une location unique, redéployez vos VM sur un hôte mutualisé. Lorsque vous modifiez la location d'une VM, Compute Engine conserve les configurations de la VM.

Rééquilibrer les charges de travail à locataire unique

En plus de déplacer des VM vers et depuis des nœuds et des groupes de nœuds à locataire unique, vous pouvez déplacer des VM entre des nœuds et des groupes de nœuds, ce qui peut vous aider à regrouper les nœuds et à rééquilibrer les charges de travail. Le déplacement d'une VM nécessite un redémarrage. Par conséquent, vous devez transférer les VM en fonction des exigences de disponibilité de vos charges de travail.

Limites

  • Lorsque vous déplacez une VM qui s'exécute déjà sur un nœud à locataire unique, la VM peut redémarrer sur un autre nœud. Si la location unique d'une VM est spécifiée par nom de groupe de nœuds ou à l'aide du libellé d'affinité par défaut node-group-name, la VM peut redémarrer sur n'importe quel nœud du groupe de nœuds. Si la location unique de la VM est spécifiée à l'aide de libellés d'affinité personnalisés d'affinité ou d'anti-affinité, la VM peut redémarrer sur n'importe quel nœud de n'importe quel groupe de nœuds de la zone.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Déplacer une VM vers une location unique

Mettez à jour la location en déplaçant la VM sur un groupe de nœuds ou un nœud à locataire unique spécifique à partir d'un autre nœud ou groupe de nœuds, ou d'un hôte mutualisé.

gcloud

  1. Arrêtez la VM.

    gcloud compute instances stop VM_NAME
    

    Remplacez VM_NAME par le nom de la VM à arrêter.

  2. Mettez à jour la location en spécifiant le groupe de nœuds vers lequel déplacer la VM.

    gcloud compute instances set-scheduling VM_NAME \
        --node-group=NODE_GROUP_NAME
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de la VM à déplacer vers un groupe de nœuds spécifique

    • NODE_GROUP_NAME : nom du groupe de nœuds vers lequel déplacer la VM

    Vous pouvez également déplacer une VM vers un nœud à locataire unique à l'aide du nom du nœud ou d'un libellé d'affinité. Pour en savoir plus sur cette commande, consultez la section gcloud compute instances set-scheduling.

  3. Démarrez la VM.

    gcloud compute instances start VM_NAME
    

    Remplacez VM_NAME par le nom de la VM à démarrer sur le groupe de nœuds précédemment spécifié par le contenu d'un fichier de libellés d'affinité.

REST

  1. Arrêtez la VM. Pour en savoir plus sur cette commande, consultez la section instances.stop.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM à arrêter

    • ZONE : zone contenant le projet

    • VM_NAME : nom de la VM à arrêter

  2. Mettez à jour la location en spécifiant le groupe de nœuds vers lequel déplacer la VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": [
        {
          "key": "compute.googleapis.com/node-group-name",
          "operator": "IN",
          "values": [
            "NODE_GROUP_NAME"
          ]
        }
      ]
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM à déplacer

    • ZONE : zone contenant le projet

    • VM_NAME : nom de la VM à déplacer vers un groupe de nœuds spécifique

    • NODE_GROUP_NAME : nom du groupe de nœuds vers lequel déplacer la VM

    Vous pouvez également déplacer une VM vers un nœud à locataire unique à l'aide du nom du nœud ou d'un libellé d'affinité. Pour en savoir plus, consultez la section sur la méthode instances.setScheduling.

  3. Démarrez la VM. Pour en savoir plus sur cette commande, consultez la section instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM à démarrer

    • ZONE : zone contenant le projet

    • VM_NAME : nom de la VM à démarrer

Déplacer une VM hors d'une location unique

Si votre VM ne nécessite plus de matériel dédié, par exemple, après un événement nécessitant d'isoler votre VM des autres VM, déplacez la VM depuis un nœud à locataire unique vers un hôte mutualisé.

gcloud

  1. Arrêtez la VM.

    gcloud compute instances stop VM_NAME
    

    Remplacez VM_NAME par le nom de la VM à arrêter.

  2. Effacez les affinités de nœuds de la VM afin de pouvoir la déplacer vers un hôte mutualisé.

    gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
    

    Remplacez VM_NAME par le nom de la VM pour laquelle supprimer les affinités de nœuds.

  3. Démarrez la VM sur un hôte mutualisé.

    gcloud compute instances start VM_NAME
    

    Remplacez VM_NAME par le nom de la VM à partir de laquelle vous avez précédemment supprimé les affinités de nœuds.

REST

  1. Arrêtez la VM. Pour en savoir plus sur cette commande, consultez la page sur instances.stop.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM à arrêter

    • ZONE : zone contenant le projet

    • VM_NAME : nom de la VM à arrêter

  2. Effacez les affinités de nœuds de la VM pour la déplacer vers un hôte mutualisé.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": []
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM à déplacer

    • ZONE : zone contenant le projet

    • VM_NAME : nom de la VM à partir de laquelle effacer les affinités de nœuds

  3. Démarrez la VM sur un hôte mutualisé. Pour en savoir plus sur cette commande, consultez la section instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM à démarrer

    • ZONE : zone contenant le projet

    • VM_NAME : nom de la VM à démarrer

Étape suivante