Réduire la latence à l'aide de stratégies d'emplacement compact


Ce document explique comment réduire la latence réseau entre vos instances de machines virtuelles (VM) en créant et en appliquant des stratégies de concentration. Pour en savoir plus sur les règles d'emplacement, y compris sur les séries de machines compatibles, les restrictions et les tarifs, consultez la section Présentation des règles d'emplacement.

Une stratégie d'emplacement compact spécifie que vos VM doivent être physiquement proches les unes des autres. Cela peut vous aider à améliorer les performances et à réduire la latence réseau entre vos VM lorsque, par exemple, vous exécutez des charges de travail de calcul hautes performances (HPC), de machine learning (ML) ou de serveur de base de données.

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 en sélectionnant l'une des options suivantes:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et appliquer une stratégie d'emplacement compact aux VM, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet:

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour créer et appliquer une stratégie d'emplacement compact aux VM. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer et appliquer une stratégie de concentration aux VM :

  • Pour créer des stratégies d'emplacement par répartition : compute.resourcePolicies.create sur le projet
  • Pour appliquer une stratégie d'emplacement par répartition aux VM existantes : compute.instances.addResourcePolicies sur le projet
  • Pour créer des machines virtuelles :
    • compute.instances.create sur le projet
    • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
    • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
    • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
    • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
    • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
    • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
    • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
    • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
    • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
    • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
    • Pour définir des libellés pour la VM : compute.instances.setLabels sur la VM
    • Pour définir un compte de service à utiliser avec la VM : compute.instances.setServiceAccount sur la VM
    • Pour créer un disque pour la VM : compute.disks.create sur le projet
    • Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.use sur le disque
    • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque
  • Pour créer une réservation : compute.reservations.create sur le projet
  • Pour créer un modèle d'instance : compute.instanceTemplates.create sur le projet.
  • Pour créer un groupe d'instances géré (MIG) : compute.instanceGroupManagers.create sur le projet
  • Pour afficher les détails d'une VM : compute.instances.get sur le projet

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer une stratégie de concentration

À moins que vous ne souhaitiez appliquer une stratégie d'emplacement compact aux VM N2 ou N2D, Google Cloud vous recommande de spécifier une valeur de distance maximale lors de la création de la stratégie. Pour en savoir plus, consultez la section Fonctionnement des stratégies d'emplacement compact.

Pour créer une stratégie d'emplacement compact, sélectionnez l'une des options suivantes:

gcloud

  • Pour appliquer la stratégie d'emplacement compact aux VM N2 ou N2D, créez-la à l'aide de la commande gcloud compute resource-policies create group-placement avec l'option --collocation=collocated.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    Remplacez les éléments suivants :

    • POLICY_NAME: nom de la stratégie d'emplacement compact.

    • REGION: région dans laquelle créer la stratégie d'emplacement.

  • Pour appliquer la stratégie de concentration à d'autres VM compatibles, créez-la à l'aide de la commande gcloud beta compute resource-policies create group-placement avec les options --collocation=collocated et --max-distance.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    Remplacez les éléments suivants :

    • POLICY_NAME: nom de la stratégie d'emplacement compact.

    • MAX_DISTANCE : configuration de distance maximale pour vos VM. La valeur doit être comprise entre 1 qui spécifie de placer vos VM sur le même rack pour obtenir la latence réseau la plus faible possible, et 3 qui place vos VM dans des clusters adjacents. Si vous souhaitez appliquer la stratégie d'emplacement compact à une réservation, vous ne pouvez pas spécifier la valeur 1.

    • REGION: région dans laquelle créer la stratégie d'emplacement.

REST

  • Pour appliquer la stratégie d'emplacement compact aux VM N2 ou N2D, créez-la en envoyant une requête POST à la méthode resourcePolicies.insert. Dans le corps de la requête, incluez le champ collocation et définissez-le sur COLLOCATED.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la stratégie d'emplacement.

    • REGION: région dans laquelle créer la stratégie d'emplacement.

    • POLICY_NAME: nom de la stratégie d'emplacement compact.

  • Pour appliquer la stratégie d'emplacement compact à d'autres VM compatibles, créez-la en envoyant une requête POST à la méthode beta.resourcePolicies.insert. Dans le corps de la requête, incluez les éléments suivants :

    • Le champ collocation défini sur COLLOCATED.

    • Le champ maxDistance

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID du projet dans lequel vous souhaitez créer la stratégie d'emplacement.

    • REGION : région dans laquelle créer la stratégie d'emplacement.

    • POLICY_NAME: nom de la stratégie d'emplacement compact.

    • MAX_DISTANCE : configuration de distance maximale pour vos VM. La valeur doit être comprise entre 1 qui spécifie de placer vos VM sur le même rack pour obtenir la latence réseau la plus faible possible, et 3 qui place vos VM dans des clusters adjacents. Si vous souhaitez appliquer la stratégie d'emplacement compact à une réservation, vous ne pouvez pas spécifier la valeur 1.

Appliquer une stratégie d'emplacement compact

Vous pouvez appliquer une stratégie de concentration à une VM ou un MIG existants, ou lorsque vous créez des VM, des modèles d'instance, des MIG ou des réservations de VM.

Pour appliquer une stratégie de placement compact à une ressource Compute Engine, sélectionnez l'une des méthodes suivantes:

Une fois que vous avez appliqué une stratégie d'emplacement compact à une VM, vous pouvez vérifier l'emplacement physique de la VM par rapport aux autres VM qui spécifient la même stratégie d'emplacement.

Appliquer la stratégie à une VM existante

Avant d'appliquer une stratégie de concentration à une VM existante, vérifiez les points suivants :

Sinon, l'application de la stratégie de concentration à la VM échoue. Si la VM spécifie déjà une stratégie d'emplacement et que vous souhaitez la remplacer, consultez plutôt la section Remplacer une stratégie d'emplacement dans une VM.

Pour appliquer une stratégie de concentration à une VM existante, sélectionnez l'une des options suivantes:

gcloud

  1. Arrêtez la VM.

  2. Pour appliquer une stratégie de concentration à une VM existante, exécutez la commande gcloud compute instances add-resource-policies.

    gcloud compute instances add-resource-policies VM_NAME \
        --resource-policies=POLICY_NAME \
        --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME : nom d'une VM existante.

    • POLICY_NAME : nom d'une stratégie de concentration existante.

    • ZONE : zone où se trouve la VM.

  3. Redémarrez la VM.

REST

  1. Arrêtez la VM.

  2. Pour appliquer une stratégie de concentration à une VM existante, envoyez une requête POST à la méthode instances.addResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID du projet dans lequel se trouvent la stratégie d'emplacement compact et la VM.

    • ZONE : zone où se trouve la VM.

    • VM_NAME : nom d'une VM existante.

    • REGION : région où se trouve la stratégie d'emplacement compact.

    • POLICY_NAME : nom d'une stratégie de concentration existante.

  3. Redémarrez la VM.

Appliquer la stratégie lors de la création d'une VM

Vous ne pouvez créer une VM qui spécifie une stratégie d'emplacement compact que dans la même région que la stratégie d'emplacement.

Pour créer une VM qui spécifie une stratégie de concentration, sélectionnez l'une des options suivantes:

gcloud

Pour créer une VM qui spécifie une stratégie de concentration, exécutez la commande gcloud compute instances create avec les options --maintenance-policy et --resource-policies.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM à créer

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie d'emplacement compact que vous spécifiez utilise une valeur de distance maximale de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • ZONE : Zone dans laquelle créer l'instance de VM.

REST

Pour créer une VM qui spécifie une stratégie de concentration, envoyez une requête POST à la méthode instances.insert. Dans le corps de la requête, incluez les champs onHostMaintenance et resourcePolicies.

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

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement compact.

  • ZONE : zone où créer la VM et où se trouve le type de machine. Vous ne pouvez spécifier qu'une zone dans la région de la stratégie d'emplacement compact.

  • VM_NAME : nom de la VM à créer

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • REGION : région où se trouve la stratégie de concentration.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie d'emplacement compact que vous spécifiez utilise une valeur de distance maximale de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

Pour en savoir plus sur les options de configuration permettant de créer une VM, consultez la section Créer et démarrer une instance de VM.

Appliquer la stratégie lors de la création groupée de VM

Vous ne pouvez créer de manière groupée des VM avec une stratégie d'emplacement compact que dans la même région que la stratégie d'emplacement.

Pour créer de manière groupée des VM qui spécifient une stratégie de concentration, sélectionnez l'une des options suivantes:

gcloud

Pour créer de manière groupée des VM qui spécifient une stratégie de concentration, exécutez la commande gcloud compute instances bulk create avec les options --maintenance-policy et --resource-policies.

Par exemple, pour créer des VM de manière groupée dans une seule zone et spécifier un format de nom pour les VM, exécutez la commande suivante :

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Remplacez les éléments suivants :

  • COUNT: nombre de VM à créer, qui ne peut pas être supérieur au nombre maximal de VM compatible de la stratégie d'emplacement compact spécifiée.

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie d'emplacement compact que vous spécifiez utilise une valeur de distance maximale de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

  • NAME_PATTERN : modèle de nom des VM. Pour remplacer une séquence de nombres dans un nom de VM, utilisez une séquence de caractères de hachage (#). Par exemple, le modèle de nom vm-# génère des VM portant des noms commençant par vm-1, vm-2, etc., jusqu'au nombre de VM spécifié par COUNT.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • ZONE : zone dans laquelle créer les VM de manière groupée.

REST

Pour créer de manière groupée des VM qui spécifient une stratégie de concentration, envoyez une requête POST à la méthode instances.bulkInsert. Dans le corps de la requête, incluez les champs onHostMaintenance et resourcePolicies.

Par exemple, pour créer des VM de manière groupée dans une seule zone et spécifier un format de nom pour les VM, envoyez une requête POST comme suit :

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

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement compact.

  • ZONE : zone dans laquelle créer les VM de manière groupée.

  • COUNT: nombre de VM à créer, qui ne peut pas être supérieur au nombre maximal de VM compatible de la stratégie d'emplacement compact spécifiée.

  • NAME_PATTERN : modèle de nom des VM. Pour remplacer une séquence de nombres dans un nom de VM, utilisez une séquence de caractères de hachage (#). Par exemple, le modèle de nom vm-# génère des VM portant des noms commençant par vm-1, vm-2, etc., jusqu'au nombre de VM spécifié par COUNT.

        with names starting with `vm-1`, `vm-2`, and continuing up to the number
    

    des VM spécifiées par COUNT.

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • REGION : région où se trouve la stratégie de concentration.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie d'emplacement compact que vous spécifiez utilise une valeur de distance maximale de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

Pour en savoir plus sur les options de configuration permettant de créer des VM de manière groupée, consultez la section Créer des VM de manière groupée.

Appliquer la stratégie lors de la création d'une réservation

Si vous souhaitez créer une réservation à la demande pour un seul projet qui spécifie une stratégie d'emplacement compacte, vous devez créer une réservation ciblée. Lorsque vous créez des VM pour utiliser la réservation, vérifiez les points suivants:

  • Les VM doivent spécifier la même stratégie d'emplacement compact appliquée à la réservation.

  • Les VM doivent cibler spécifiquement la réservation pour pouvoir l'utiliser. Pour en savoir plus, consultez la section Consommer des VM d'une réservation spécifique.

Pour créer une réservation pour un projet unique avec une stratégie de placement compact, sélectionnez l'une des méthodes suivantes:

Pour créer une réservation à projet unique avec une stratégie d'emplacement compact en spécifiant directement les propriétés, sélectionnez l'une des options suivantes:

gcloud

Pour créer une réservation à projet unique avec une stratégie d'emplacement compact en spécifiant directement les propriétés, exécutez la commande gcloud compute reservations create avec les options --require-specific-reservation et --resource-policies=policy.

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Remplacez les éléments suivants :

  • RESERVATION_NAME : nom de la réservation.

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • NUMBER_OF_VMS: nombre de VM à réserver, qui ne peut pas être supérieur au nombre maximal de VM compatible de la stratégie d'emplacement compact spécifiée.

  • ZONE: zone dans laquelle réserver des VM. Vous ne pouvez réserver des VM que dans une zone située dans la région de la stratégie d'emplacement compact spécifiée.

REST

Pour créer une réservation à projet unique avec une stratégie d'emplacement compact en spécifiant directement les propriétés, envoyez une requête POST à la méthode reservations.insert. Dans le corps de la requête, incluez le champ resourcePolicies et le champ specificReservationRequired défini sur true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement compact.

  • ZONE: zone dans laquelle réserver des VM. Vous ne pouvez réserver des VM que dans une zone située dans la région de la stratégie d'emplacement compact spécifiée.

  • RESERVATION_NAME : nom de la réservation.

  • REGION : région où se trouve la stratégie de concentration.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • NUMBER_OF_VMS: nombre de VM à réserver, qui ne peut pas être supérieur au nombre maximal de VM compatible de la stratégie d'emplacement compact spécifiée.

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

Pour en savoir plus sur les options de configuration permettant de créer des réservations pour un seul projet, consultez la section Créer une réservation pour un seul projet.

Appliquer la stratégie lors de la création d'un modèle d'instance

Si vous souhaitez créer un modèle d'instance régional, vous devez le créer dans la même région que la stratégie d'emplacement compact. Sinon, la création du modèle d'instance échoue.

Après avoir créé un modèle d'instance qui spécifie une stratégie de concentration, vous pouvez utiliser le modèle pour effectuer les opérations suivantes:

Pour créer un modèle d'instance qui spécifie une stratégie de concentration, sélectionnez l'une des options suivantes:

gcloud

Pour créer un modèle d'instance spécifiant une stratégie de concentration, exécutez la commande gcloud compute instance-templates create avec les options --maintenance-policy et --resource-policies.

Par exemple, pour créer un modèle d'instance global qui spécifie une stratégie d'emplacement compact, exécutez la commande suivante:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie d'emplacement compact que vous spécifiez utilise une valeur de distance maximale de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

REST

Pour créer un modèle d'instance qui spécifie une stratégie de concentration, envoyez une requête POST à l'une des méthodes suivantes:

Dans le corps de la requête, incluez les champs onHostMaintenance et resourcePolicies.

Par exemple, pour créer un modèle d'instance global qui spécifie une stratégie d'emplacement compact, envoyez une requête POST comme suit:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement compact.

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • MACHINE_TYPE: type de machine compatible pour les stratégies d'emplacement compact.

  • POLICY_NAME : nom d'une stratégie de concentration existante.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie d'emplacement compact que vous spécifiez utilise une valeur de distance maximale de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

Pour en savoir plus sur les options de configuration permettant de créer un modèle d'instance, consultez la page Créer des modèles d'instance.

Appliquer la stratégie aux VM d'un MIG

Après avoir créé un modèle d'instance qui spécifie une stratégie de concentration, vous pouvez utiliser le modèle pour effectuer les opérations suivantes :

Appliquer la stratégie lors de la création d'un groupe d'instances de machine virtuelle (MIG)

Vous ne pouvez créer des VM qui spécifient une stratégie d'emplacement de concentration que si elles se trouvent dans la même région que la stratégie d'emplacement.

Pour créer un MIG à l'aide d'un modèle d'instance qui spécifie une stratégie de concentration, sélectionnez l'une des options suivantes:

gcloud

Pour créer un MIG à l'aide d'un modèle d'instance qui spécifie une stratégie de concentration, exécutez la commande gcloud compute instance-groups managed create.

Par exemple, pour créer un MIG zonal à l'aide d'un modèle d'instance global qui spécifie une stratégie d'emplacement compact, exécutez la commande suivante:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG à créer.

  • SIZE : taille du MIG.

  • INSTANCE_TEMPLATE_NAME: nom d'un modèle d'instance global existant qui spécifie une stratégie d'emplacement compact.

  • ZONE: zone dans laquelle créer le MIG, qui doit se trouver dans la région où se trouve la stratégie de concentration.

REST

Pour créer un MIG à l'aide d'un modèle d'instance qui spécifie une stratégie de concentration, envoyez une requête POST à l'une des méthodes suivantes:

Par exemple, pour créer un MIG zonal à l'aide d'un modèle d'instance global qui spécifie une stratégie d'emplacement compact, envoyez une requête POST comme suit:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouvent la stratégie d'emplacement compact et le modèle d'instance qui spécifie la stratégie d'emplacement.

  • ZONE: zone dans laquelle créer le MIG, qui doit se trouver dans la région où se trouve la stratégie d'emplacement compact.

  • INSTANCE_GROUP_NAME : nom du MIG à créer.

  • INSTANCE_TEMPLATE_NAME: nom d'un modèle d'instance global existant qui spécifie une stratégie d'emplacement compact.

  • SIZE : taille du MIG.

Pour en savoir plus sur les options de configuration permettant de créer des MIG, consultez la section Scénarios de base pour la création de MIG.

Appliquer la stratégie à un MIG existant

Vous ne pouvez appliquer une stratégie d'emplacement par répartition qu'à un MIG existant s'il se trouve dans la même région que la stratégie d'emplacement ou, pour les MIG zonaux, dans une zone de la même région que la stratégie d'emplacement.

Pour mettre à jour un MIG afin d'utiliser un modèle d'instance qui spécifie une stratégie de concentration, sélectionnez l'une des options suivantes:

gcloud

Pour mettre à jour un MIG afin d'utiliser un modèle d'instance qui spécifie une stratégie de concentration, exécutez la commande gcloud compute instance-groups managed rolling-action start-update.

Par exemple, pour mettre à jour un MIG zonal afin qu'il utilise un modèle d'instance spécifiant une stratégie de concentration et remplacer les VM existantes du MIG par de nouvelles VM spécifiant les propriétés du modèle, exécutez la commande suivante:

gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Remplacez les éléments suivants :

  • MIG_NAME : nom d'un MIG existant.

  • INSTANCE_TEMPLATE_NAME: nom d'un modèle d'instance global existant qui spécifie une stratégie d'emplacement compact.

  • ZONE : zone où se trouve le MIG. Vous ne pouvez appliquer la stratégie de concentration qu'à un MIG situé dans la même région que la stratégie d'emplacement.

REST

Pour mettre à jour un MIG afin qu'il utilise un modèle d'instance spécifiant une stratégie de concentration et appliquer automatiquement les propriétés du modèle et la stratégie d'emplacement aux VM existantes dans le MIG, envoyez une requête PATCH à l'une des méthodes suivantes:

Par exemple, pour mettre à jour un MIG zonal afin qu'il utilise un modèle d'instance global spécifiant une stratégie de concentration et remplacer les VM existantes du MIG par de nouvelles VM spécifiant les propriétés du modèle, envoyez la requête PATCH suivante:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouvent le MIG, la stratégie d'emplacement compact et le modèle d'instance qui spécifie la stratégie d'emplacement.

  • ZONE : zone où se trouve le MIG. Vous ne pouvez appliquer la stratégie de concentration qu'à un MIG situé dans la même région que la stratégie d'emplacement.

  • MIG_NAME : nom d'un MIG existant.

  • INSTANCE_TEMPLATE_NAME: nom d'un modèle d'instance global existant qui spécifie une stratégie d'emplacement compact.

Pour en savoir plus sur les options de configuration permettant de mettre à jour les VM d'un MIG, consultez la section Mettre à jour et appliquer de nouvelles configurations aux VM d'un MIG.

Vérifier l'emplacement physique d'une VM

Après avoir appliqué une stratégie d'emplacement compact à une VM, vous pouvez afficher son emplacement physique par rapport aux autres VM. Cette comparaison est limitée aux VM situées dans votre projet et qui spécifient la même stratégie d'emplacement compact. Afficher l'emplacement physique d'une VM vous permet de:

  • Vérifiez que la règle a bien été appliquée.

  • Identifiez les VM les plus proches les unes des autres.

Pour afficher l'emplacement physique d'une VM par rapport aux autres VM qui spécifient la même stratégie d'emplacement compact, sélectionnez l'une des options suivantes:

gcloud

Pour afficher l'emplacement physique d'une VM qui spécifie une stratégie de concentration, exécutez la commande gcloud compute instances describe avec l'option --format.

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

Remplacez les éléments suivants :

  • VM_NAME: nom d'une VM existante qui spécifie une stratégie d'emplacement compact.

  • ZONE : zone où se trouve la VM.

Le résultat ressemble à ce qui suit :

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

La valeur du champ PHYSICAL_HOST est composée de trois parties. Ces parties représentent chacune le cluster, le rack et l'hôte où se trouve la VM.

Lorsque vous comparez la position de deux VM qui utilisent la même stratégie d'emplacement compact dans votre projet, plus les VM partagent un grand nombre de parties de PHYSICAL_HOST, plus elles sont physiquement proches l'une de l'autre. Par exemple, supposons que deux VM spécifient l'un des exemples de valeur suivants pour le champ PHYSICAL_HOST:

  • /CCCCCCC/xxxxxx/xxxx: les deux VM sont placées dans le même cluster, ce qui correspond à une valeur de distance maximale de 2. Les VM placées dans le même cluster subissent une faible latence du réseau.

  • /CCCCCCC/BBBBBB/xxxx: les deux VM sont placées dans le même rack, ce qui correspond à une valeur de distance maximale de 1. Les VM placées dans le même rack présentent une latence réseau inférieure à celle des VM placées dans le même cluster.

  • /CCCCCCC/BBBBBB/AAAA : les deux VM partagent le même hôte. Les VM placées sur le même hôte minimisent autant que possible la latence réseau.

REST

Pour afficher l'emplacement physique d'une VM qui spécifie une stratégie de concentration, envoyez une requête GET à la méthode instances.get.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la VM.

  • ZONE : zone où se trouve la VM.

  • VM_NAME: nom d'une VM existante qui spécifie une stratégie d'emplacement compact.

Le résultat ressemble à ce qui suit :

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

La valeur du champ physicalHost est composée de trois parties. Ces parties représentent chacune le cluster, le rack et l'hôte où se trouve la VM.

Lorsque vous comparez la position de deux VM qui utilisent la même stratégie d'emplacement compact dans votre projet, plus les VM partagent un grand nombre de parties de physicalHost, plus elles sont physiquement proches l'une de l'autre. Par exemple, supposons que deux VM spécifient l'un des exemples de valeur suivants pour le champ physicalHost:

  • /CCCCCCC/xxxxxx/xxxx: les deux VM sont placées dans le même cluster, ce qui correspond à une valeur de distance maximale de 2. Les VM placées dans le même cluster subissent une faible latence du réseau.

  • /CCCCCCC/BBBBBB/xxxx: les deux VM sont placées dans le même rack, ce qui correspond à une valeur de distance maximale de 1. Les VM placées dans le même rack présentent une latence réseau inférieure à celle des VM placées dans le même cluster.

  • /CCCCCCC/BBBBBB/AAAA : les deux VM partagent le même hôte. Les VM placées sur le même hôte minimisent autant que possible la latence réseau.

Étape suivante