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.

Une stratégie de concentration 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.

Vous pouvez appliquer une stratégie d'emplacement compact lorsque vous effectuez les opérations suivantes :

  • Créer ou mettre à jour une VM.
  • Créer une réservation à projet unique.
  • Créer des VM de manière groupée.
  • Créer un modèle d'instance. Le modèle d'instance applique ensuite la stratégie d'emplacement compact lorsque vous l'utilisez pour effectuer les opérations suivantes :
    • Créer une VM.
    • Créer ou mettre à jour un groupe d'instances géré (MIG).
    • Créer une réservation à projet unique.

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

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 le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur la VM ou le projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient 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 : compute.resourcePolicies.create sur le projet
  • Pour appliquer une stratégie d'emplacement à une VM existante : compute.instances.addResourcePolicies 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.

Restrictions

Outre les restrictions générales concernant les stratégies d'emplacement, les stratégies d'emplacement compact sont soumises aux restrictions suivantes :

  • Pour les stratégies de concentration, vous pouvez utiliser max-distance (bêta) pour mieux contrôler la distance entre vos VM. Le tableau suivant décrit le nombre de VM et la stratégie de maintenance d'hôte compatibles pour chaque valeur max-distance :

    Valeur max-distance Description Nombre maximal de VM Stratégie de maintenance d'hôte compatible
    Non spécifié Selon la disponibilité, les VM sont placées le plus près possible les unes des autres. 1,500 Migrer ou arrêter
    3 Les VM sont placées dans des clusters adjacents pour obtenir une faible latence. 1,500 Migrer ou arrêter
    2 Les VM sont placées dans des racks adjacents et bénéficient d'une latence réseau inférieure à celle des VM placées dans des clusters adjacents. 150 Arrêt
    1 Les VM sont placées dans le même rack et la latence réseau est réduite autant que possible. 22 Arrêt
  • Vous ne pouvez appliquer une stratégie d'emplacement compact qu'aux séries de machines A2, A3, C2, C3, C2D, C3D, G2, H3, N2 et N2D. Si vous utilisez max-distance lors de la création d'une stratégie d'emplacement compact, vous ne pouvez pas appliquer la stratégie aux séries de machines A3, G2, N2 et N2D.

  • Vous ne pouvez pas appliquer de stratégies de concentration aux VM qui spécifient des nœuds à locataire unique.

  • Si vous souhaitez créer une stratégie d'emplacement compact dans une réservation, consultez les conditions supplémentaires pour les réservations.

Créer une stratégie de concentration

Pour créer une stratégie de concentration, utilisez l'une des méthodes suivantes :

  • Recommandé : Sans nombre fixe.

    Vous pouvez appliquer une stratégie de concentration qui ne spécifie pas de nombre fixe de VM à un nombre non spécifié de VM. Ainsi, la stratégie de concentration est efficace quel que soit le nombre de VM auxquelles vous l'appliquez.

  • Avec nombre fixe.

    Vous ne pouvez appliquer une stratégie de concentration qui spécifie un nombre fixe de VM qu'à un nombre exact de VM. La stratégie de concentration n'est effective que si elle est appliquée au nombre de VM spécifié.

Sans nombre fixe

Vous pouvez créer une stratégie d'emplacement compact à l'aide de gcloud CLI et de REST.

gcloud

Pour créer une stratégie de concentration, utilisez 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 à créer.

  • REGION : région dans laquelle créer la stratégie. Si vous souhaitez appliquer la stratégie de concentration aux VM existantes, créez-la dans une région contenant la zone dans laquelle se trouvent les VM.

Si vous avez besoin d'une latence réseau stricte, vous pouvez créer une stratégie de concentration afin de mieux contrôler l'écart entre les VM en utilisant 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 MAX_DISTANCE par la 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 spécifie de placer vos VM dans des clusters adjacents. En fonction du type de machine et de la zone spécifiés dans les VM auxquelles vous appliquez une stratégie d'emplacement compact, les conditions suivantes s'appliquent :

  • Si une zone dispose d'une capacité suffisante, une stratégie d'emplacement compact avec une valeur maxDistance plus élevée (telle que 3) peut entraîner le placement plus rapproché de vos VM.

  • Si la capacité d'une zone est insuffisante, une stratégie d'emplacement compact avec une valeur maxDistance inférieure (telle que 1) est plus susceptible d'entraîner un échec d'application de la stratégie à une ou plusieurs de vos VM.

REST

Pour créer une stratégie d'emplacement compact, envoyez 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. Si vous souhaitez appliquer la stratégie de concentration aux VM existantes, créez-la dans une région contenant la zone dans laquelle se trouvent les VM.

  • POLICY_NAME : nom de la stratégie de concentration à créer.

(Facultatif) Si vous avez de strictes exigences de latence réseau, vous pouvez créer une stratégie d'emplacement compact afin de mieux contrôler l'écart entre les VM en envoyant une requête POST à la méthode beta.resourcePolicies.insert. Dans le corps de la requête, incluez le champ collocation défini sur COLLOCATED, ainsi que 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 MAX_DISTANCE par la 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 spécifie de placer vos VM dans des clusters adjacents. En fonction du type de machine et de la zone spécifiés dans les VM auxquelles vous appliquez une stratégie d'emplacement compact, les conditions suivantes s'appliquent :

  • Si une zone dispose d'une capacité suffisante, une stratégie d'emplacement compact avec une valeur maxDistance plus élevée (telle que 3) peut entraîner le placement plus rapproché de vos VM.

  • Si la capacité d'une zone est insuffisante, une stratégie d'emplacement compact avec une valeur maxDistance inférieure (telle que 1) est plus susceptible d'entraîner un échec d'application de la stratégie à une ou plusieurs de vos VM.

Avec nombre fixe

Vous pouvez créer une stratégie d'emplacement compact qui spécifie un nombre fixe de VM à l'aide de gcloud CLI et de REST.

gcloud

Pour créer une stratégie de concentration qui spécifie un nombre fixe de VM, exécutez la commande gcloud compute resource-policies create group-placement avec les options --collocation=collocated et --vm-count.

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

Remplacez les éléments suivants :

  • POLICY_NAME : nom de la stratégie à créer.

  • REGION : région dans laquelle créer la stratégie. Si vous souhaitez appliquer la stratégie de concentration aux VM existantes, créez-la dans une région contenant la zone dans laquelle se trouvent les VM.

  • VM_COUNT : nombre exact de VM auxquelles vous pouvez appliquer la stratégie de concentration. La valeur doit être comprise entre 1 et le nombre maximal de VM auxquelles vous pouvez appliquer la stratégie d'emplacement compact.

(Facultatif) Si vous avez de strictes exigences de latence réseau, vous pouvez créer une stratégie de concentration afin de mieux contrôler l'écart entre les VM en utilisant la commande gcloud beta compute resource-policies create group-placement avec les options --collocation=collocated ,--max-distance et --vm-count.

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

Remplacez MAX_DISTANCE par la 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 spécifie de placer vos VM dans des clusters adjacents. En fonction du type de machine et de la zone spécifiés dans les VM auxquelles vous appliquez une stratégie d'emplacement compact, les conditions suivantes s'appliquent :

  • Si une zone dispose d'une capacité suffisante, une stratégie d'emplacement compact avec une valeur maxDistance plus élevée (telle que 3) peut entraîner le placement plus rapproché de vos VM.

  • Si la capacité d'une zone est insuffisante, une stratégie d'emplacement compact avec une valeur maxDistance inférieure (telle que 1) est plus susceptible d'entraîner un échec d'application de la stratégie à une ou plusieurs de vos VM.

REST

Pour créer une stratégie d'emplacement compact qui spécifie un nombre fixe de VM, envoyez une requête POST à la méthode resourcePolicies.insert. Dans le corps de la requête, incluez le champ collocation défini sur COLLOCATED, ainsi que le champ vmCount.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "collocation": "COLLOCATED",
    "vmCount": "VM_COUNT"
  }
}

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. Si vous souhaitez appliquer la stratégie de concentration aux VM existantes, créez-la dans une région contenant la zone dans laquelle se trouvent les VM.

  • POLICY_NAME : nom de la stratégie de concentration à créer.

  • VM_COUNT : nombre exact de VM auxquelles vous pouvez appliquer la stratégie de concentration. La valeur doit être comprise entre 1 et le nombre maximal de VM auxquelles vous pouvez appliquer la stratégie d'emplacement compact.

(Facultatif) Si vous avez de strictes exigences de latence réseau, vous pouvez créer une stratégie d'emplacement compact afin de mieux contrôler l'écart entre les VM en envoyant une requête POST à la méthode beta.resourcePolicies.insert. Dans le corps de la requête, incluez le champ collocation défini sur COLLOCATED, le champ maxDistance, et le champ vmCount.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "collocation": "COLLOCATED",
    "maxDistance": "MAX_DISTANCE",
    "vmCount": "VM_COUNT"
  }
}

Remplacez MAX_DISTANCE par la 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 spécifie de placer vos VM dans des clusters adjacents. En fonction du type de machine et de la zone spécifiés dans les VM auxquelles vous appliquez une stratégie d'emplacement compact, les conditions suivantes s'appliquent :

  • Si une zone dispose d'une capacité suffisante, une stratégie d'emplacement compact avec une valeur maxDistance plus élevée (telle que 3) peut entraîner le placement plus rapproché de vos VM.

  • Si la capacité d'une zone est insuffisante, une stratégie d'emplacement compact avec une valeur maxDistance inférieure (telle que 1) est plus susceptible d'entraîner un échec d'application de la stratégie à une ou plusieurs de vos VM.

Appliquer des stratégies de concentration

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

Pour créer une ressource Compute Engine qui spécifie une stratégie de concentration, sélectionnez l'une des méthodes suivantes :

Si vous souhaitez spécifier une stratégie de concentration lors de la création d'une réservation à projet unique en spécifiant directement les propriétés, consultez plutôt la section Créer une réservation pour un seul projet.

Une fois qu'une stratégie de concentration est appliquée à une VM, vous pouvez vérifier l'emplacement physique de cette VM par rapport aux autres VM spécifiant la même stratégie.

Appliquer une stratégie de concentration à une VM existante

Vous pouvez appliquer une stratégie d'emplacement compact à une VM existante à l'aide de gcloud CLI et de REST.

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 à une VM existante échoue.

gcloud

Pour appliquer une stratégie de concentration à une VM existante, exécutez la commande gcloud compute instances add-resource-policies avec l'option --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.

REST

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

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ù la VM existe, qui doit se trouver dans la région où se trouve la stratégie de concentration.

  • VM_NAME : nom d'une VM existante.

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

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

Créer une VM qui spécifie une stratégie de concentration

Vous pouvez créer une VM qui spécifie une stratégie d'emplacement compact existante à l'aide de gcloud CLI et de REST.

gcloud

Pour créer une VM qui spécifie une stratégie de concentration, exécutez la commande gcloud compute instances create avec l'option --resource-policies.

Par exemple, pour créer une VM spécifiant un type de machine c2d-standard-2, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM à créer

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie de concentration est spécifiée avec une valeur max-distance 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 la VM. Vous ne pouvez créer une VM que dans une zone située dans la région de la stratégie de concentration que vous spécifiez.

REST

Pour créer une VM qui spécifie une stratégie de concentration, envoyez une requête POST à la méthode instances.insert avec le champ resourcePolicies.

Par exemple, pour créer une VM qui spécifie un type de machine c2d-standard-2, exécutez la requête POST suivante :

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

{
  "machineType": "zones/ZONE/machineTypes/c2d-standard-2",
  "name": "VM_NAME",
  "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 créer une VM que dans une zone située dans la région de la stratégie de concentration que vous spécifiez.

  • VM_NAME : nom de la VM à créer

  • 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 de concentration est spécifiée avec une valeur max-distance 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 et les rôles IAM permettant de créer une VM, consultez la page Créer et démarrer une instance de VM.

Créer de manière groupée des VM qui spécifient une stratégie de concentration

Vous pouvez créer de manière groupée des VM qui spécifient une stratégie d'emplacement compact existante à l'aide de gcloud CLI et de REST.

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 l'option --resource-policies.

Par exemple, pour créer de manière groupée des VM qui spécifient toutes un type de machine c2d-standard-2 et la même stratégie de concentration, exécutez la commande suivante :

gcloud compute instances bulk create \
    --async \
    --count=COUNT \
    --machine-type=c2d-standard-2 \
    --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.

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie de concentration est spécifiée avec une valeur max-distance de 1 ou 2, vous ne pouvez spécifier que TERMINATE. Sinon, vous pouvez spécifier MIGRATE ou TERMINATE.

  • NAME_PATTERN : schéma de nom des VM à créer. Utilisez le caractère de hachage (#) pour le remplacer par une séquence de nombres. Par exemple, si vous spécifiez vm-#, vous créez des VM portant les noms vm-1, vm-2, et ainsi de suite jusqu'à ce que le nombre de VM spécifié dans COUNT soit spécifié.

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

  • ZONE : zone dans laquelle créer les VM de manière groupée. Vous ne pouvez créer des VM que dans des zones situées dans la région de la stratégie de concentration que vous spécifiez.

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 avec le champ resourcePolicies.

Par exemple, pour créer de manière groupée des VM qui spécifient toutes un type de machine c2d-standard-2 et la même stratégie de concentration, exécutez la requête POST suivante :

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

{
  "count": "COUNT",
  "machineType": "zones/ZONE/machineTypes/c2d-standard-2",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "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 et où se trouve le type de machine. Vous ne pouvez créer des VM que dans des zones situées dans la région de la stratégie de concentration que vous spécifiez.

  • COUNT : nombre de VM à créer.

  • NAME_PATTERN : schéma de nom des VM à créer. Utilisez le caractère de hachage (#) pour le remplacer par une séquence de nombres. Par exemple, si vous spécifiez vm-#, vous créez des VM portant les noms vm-1, vm-2, et ainsi de suite jusqu'à ce que le nombre de VM spécifié dans COUNT soit spécifié.

  • 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 de concentration est spécifiée avec une valeur max-distance 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 ou les rôles IAM permettant de créer des VM de manière groupée, consultez la page Créer des VM de manière groupée.

Créer un modèle d'instance spécifiant une stratégie de concentration

Vous pouvez créer un modèle d'instance qui spécifie une stratégie d'emplacement compact existante à l'aide de gcloud CLI et de REST.

Après avoir créé un modèle d'instance, vous pouvez l'utiliser pour effectuer les opérations 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 l'option --resource-policies.

Par exemple, pour créer un modèle d'instance global qui spécifie un type de machine c2d-standard-2 et une stratégie d'emplacement compact existante, exécutez la commande suivante :

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

Remplacez les éléments suivants :

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

  • MAINTENANCE_POLICY : stratégie de maintenance d'hôte de la VM. Si la stratégie de concentration est spécifiée avec une valeur max-distance 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 à la méthode instanceTemplates.insert. Dans le corps de la requête, spécifiez le champ resourcePolicies.

Par exemple, pour créer un modèle d'instance global qui spécifie un type de machine c2d-standard-2 et une stratégie d'emplacement compact existante, exécutez la requête POST suivante :

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

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "machineType": "zones/ZONE/machineTypes/c2d-standard-2",
  "properties": {
    "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 que vous souhaitez appliquer au modèle d'instance.

  • ZONE : zone où se trouve le type de machine.

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

  • 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 de concentration est spécifiée avec une valeur max-distance 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 une stratégie de concentration 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 :

Si vous souhaitez appliquer une stratégie de concentration à un MIG, il est recommandé de créer ou d'appliquer de la stratégie à un MIG régional avec la forme de distribution N'importe quelle zone. Ainsi, chaque fois qu'un MIG régional doit effectuer un scaling horizontal en créant des VM, il sélectionne la zone dans laquelle créer les VM en fonction de vos réservations, de vos quotas et de vos exigences matérielles.

Créer un MIG spécifiant une stratégie de concentration

Vous pouvez créer un MIG à l'aide d'un modèle d'instance qui spécifie une stratégie d'emplacement compact à l'aide de gcloud CLI et de REST.

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 avec l'option --template.

Par exemple, pour créer un MIG régional avec une forme de distribution any-single-zone, exécutez la commande suivante :

gcloud compute instance-groups managed create MIG_NAME \
    --region=REGION \
    --size=SIZE \
    --target-distribution-shape=any-single-zone \
    --template=INSTANCE_TEMPLATE_NAME

Remplacez les éléments suivants :

  • MIG_NAME : nom du MIG à créer.

  • REGION : région dans laquelle créer le MIG, qui doit correspondre à la région dans laquelle se trouve la stratégie de concentration.

  • SIZE : taille du MIG.

  • INSTANCE_TEMPLATE_NAME : nom d'un modèle d'instance existant qui spécifie une 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 aux méthodes instanceGroupManagers.insert ou regionInstanceGroupManagers.insert avec le champ instanceTemplate défini sur le nom du modèle existant.

Par exemple, pour créer un MIG régional avec les propriétés de VM par défaut et la forme de distribution any-single-zone, envoyez la requête POST suivante :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "MIG_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "distributionPolicy": {
    "targetShape": "ANY_SINGLE_ZONE"
  },
  "targetSize": SIZE
}

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.

  • REGION : région dans laquelle créer le MIG, qui doit correspondre à la région dans laquelle se trouve la stratégie de concentration.

  • MIG_NAME : nom du MIG à créer.

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

  • SIZE : taille du MIG.

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

Appliquer une stratégie de concentration à un MIG existant

Vous pouvez appliquer une stratégie d'emplacement compact à un MIG existant à l'aide d'un modèle d'instance qui spécifie la même stratégie d'emplacement à l'aide de gcloud CLI et de REST.

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 avec l'option --version=template.

Par exemple, pour mettre à jour un MIG régional 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 \
    --region=REGION \
    --type=proactive \
    --version=template=INSTANCE_TEMPLATE_NAME

Remplacez les éléments suivants :

  • MIG_NAME : nom d'un MIG existant.

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

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

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 à instanceGroupManagers.insert ou regionInstanceGroupManagers.insert avec le champ instanceTemplate.

Par exemple, pour mettre à jour un MIG régional 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, envoyez la requête PATCH suivante :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "updatePolicy": {
    "type": "PROACTIVE"
  }
}

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.

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

  • MIG_NAME : nom d'un MIG existant.

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

Pour en savoir plus sur les options de configuration et les rôles IAM 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 de concentration à une VM, vous pouvez voir comment la stratégie de concentration a affecté son emplacement physique par rapport aux autres VM qui spécifient la même stratégie. Cela vous permet de déterminer si la stratégie de concentration a été correctement appliquée à une VM et de mapper les VM les plus proches les unes des autres.

Vous pouvez vérifier l'emplacement physique d'une VM qui spécifie une stratégie d'emplacement à l'aide de gcloud CLI et de REST.

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.

  • 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 spécifiant la même stratégie de concentration, plus les VM partagent un grand nombre de parties de PHYSICAL_HOST, plus les instances sont proches l'une de l'autre. Par exemple, si 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 max-distance 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 max-distance 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.

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 spécifiant la même stratégie de concentration, plus les VM partagent un grand nombre de parties de physicalHost, plus les instances sont proches l'une de l'autre. Par exemple, si 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 max-distance 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 max-distance 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