Définir des stratégies d'emplacement des instances

Vous pouvez contrôler l'emplacement physique de vos instances les unes par rapport aux autres dans une zone. Les stratégies d'emplacement disponibles sont les suivantes :

  • Répartition : utilisez des stratégies de répartition lorsque vous souhaitez que les instances soient à distance les unes des autres pour réduire l'impact des défaillances potentielles du système hôte.
  • Concentration : utilisez des stratégies de concentration lorsque vous souhaitez que les instances soient proches les unes des autres pour obtenir une faible latence réseau entre les instances.

Avant de commencer

Restrictions

Les stratégies d'emplacement comportent les restrictions suivantes :

Définir et appliquer une stratégie d'emplacement

Pour contrôler l'emplacement de vos instances les unes par rapport aux autres, procédez comme suit :

  1. Créez une stratégie d'emplacement avec la configuration d'emplacement dont vos instances ont besoin. Vous pouvez créer l'un des types de stratégie suivants :
    • Les stratégies d'emplacement dites de répartition positionnent vos instances de VM sur l'infrastructure du centre de données sous-jacent de sorte qu'elles ne partagent pas le même hôte ou système d'alimentation. Cela réduit l'impact des défaillances de l'hôte ou de l'alimentation.
    • Les stratégies d'emplacement dites de concentration positionnent vos instances de VM à proximité les unes des autres pour obtenir une faible latence réseau entre les instances.
  2. Appliquez la stratégie d'emplacement à une ou plusieurs instances. Les instances qui partagent la même stratégie sont placées les unes par rapport aux autres en fonction de la manière dont vous avez défini celle-ci.

Créer une stratégie de répartition

Pour créer une stratégie de répartition qui situe les instances dans plusieurs domaines de disponibilité distincts, spécifiez le nombre de domaines de disponibilité que cette stratégie doit utiliser pour séparer les instances les unes des autres.

gcloud

Utilisez l'outil gcloud pour créer la stratégie.

gcloud compute resource-policies create group-placement POLICY_NAME \
        --availability-domain-count DOMAIN_COUNT \
        --region REGION \
        --project PROJECT_ID

Remplacez les éléments suivants :

  • POLICY_NAME : le nom de la nouvelle stratégie
  • DOMAIN_COUNT : le nombre d'ensembles distincts de matériel hôte et de réseaux physiques que cette stratégie utilisera pour séparer les instances
  • REGION : la région dans laquelle vous prévoyez de créer des instances de VM utilisant cette stratégie
  • PROJECT_ID : l'ID de votre projet

API

Créez une stratégie de répartition à l'aide de la méthode resourcePolicies.insert dans les API et services de Cloud Console.

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

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet
  • REGION : la région dans laquelle vous prévoyez de créer des instances de VM utilisant cette stratégie
  • POLICY_NAME : le nom de la nouvelle stratégie
  • DOMAIN_COUNT : le nombre d'ensembles distincts de matériel hôte et de réseaux physiques que cette stratégie utilisera pour séparer les instances

Créer une stratégie de concentration

Pour créer une stratégie de concentration situant les instances plus près les unes des autres et sur la même infrastructure réseau, spécifiez une stratégie COLLOCATED et le nombre d'instances de VM que vous prévoyez d'inclure dans celle-ci.

gcloud

Utilisez l'outil gcloud pour créer la stratégie.

gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation COLLOCATED \
        --vm-count VM_COUNT \
        --region REGION \
        --project PROJECT_ID

Remplacez les éléments suivants :

  • POLICY_NAME : le nom de la nouvelle stratégie.
  • VM_COUNT : le nombre d'instances de VM à inclure dans cette stratégie. Pour les stratégies de concentration, vous devez appliquer la stratégie à ce nombre exact d'instances.
  • REGION : la région dans laquelle vous prévoyez de créer des instances de VM utilisant cette stratégie.
  • PROJECT_ID : l'ID de votre projet.

API

Créez une stratégie de répartition à l'aide de la méthode resourcePolicies.insert dans les API et services de Cloud Console.

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

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

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • REGION : la région dans laquelle vous prévoyez de créer des instances de VM utilisant cette stratégie.
  • POLICY_NAME : le nom de la nouvelle stratégie.
  • VM_COUNT : le nombre d'instances de VM à inclure dans cette stratégie. Pour les stratégies de concentration, vous devez appliquer la stratégie à ce nombre exact d'instances.

Appliquer des stratégies d'emplacement aux instances

Vous pouvez appliquer des stratégies d'emplacement aux nouvelles instances.

Appliquer une stratégie d'emplacement à une nouvelle instance

Après avoir créé la stratégie d'emplacement, appliquez-la à une ou plusieurs instances. Les instances qui partagent la même stratégie sont placées les unes par rapport aux autres en fonction de la manière dont vous avez défini celle-ci.

gcloud

Lorsque vous créez une instance, ajoutez l'option --resource-policies pour appliquer une stratégie d'emplacement :

gcloud compute instances create VM_NAME \
        --zone ZONE \
        --resource-policies POLICY_NAME \
        --image-family IMAGE_FAMILY \
        --image-project IMAGE_PROJECT \
        --project PROJECT_ID

Remplacez les éléments suivants :

  • VM_NAME : le nom de la nouvelle instance.
  • ZONE : la zone dans laquelle vous souhaitez créer l'instance. Cette zone doit se trouver dans la même région que la stratégie d'emplacement.
  • POLICY_NAME : nom de la stratégie d'emplacement que vous souhaitez appliquer à cette instance. Vous pouvez appliquer plusieurs stratégies d'emplacement à une instance.
  • IMAGE_FAMILY : l'une des familles d'images disponibles.
  • IMAGE_PROJECT : le projet d'image auquel l'image appartient.
  • PROJECT_ID : l'ID de votre projet.

API

Lorsque vous créez une instance, ajoutez la propriété resourcePolicies pour appliquer une stratégie d'emplacement :

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

{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
     }
  }],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • ZONE : la zone dans laquelle vous souhaitez créer l'instance. Cette zone doit se trouver dans la même région que la stratégie d'emplacement.
  • VM_NAME : le nom de la nouvelle instance.
  • MACHINE_TYPE : le type de machine de l'instance.
  • IMAGE_PROJECT : le projet d'image auquel l'image appartient.
  • IMAGE_FAMILY : l'une des familles d'images disponibles.
  • REGION : la région dans laquelle vous avez créé la stratégie d'emplacement.
  • POLICY_NAME : nom de la stratégie d'emplacement que vous souhaitez appliquer à cette instance. Vous pouvez appliquer plusieurs stratégies d'emplacement à une instance.

Étapes suivantes