Ce document explique comment améliorer la fiabilité de vos instances de machine virtuelle (VM) en créant et en appliquant des stratégies d'emplacement par répartition.
Une stratégie d'emplacement par répartition spécifie que vos VM doivent être réparties sur différents domaines de disponibilité. Cette distribution permet de réduire les interruptions liées à un emplacement spécifique, telles que les erreurs matérielles. Elle est utile lorsque vous exécutez des charges de travail distribuées, répliquées et à grande échelle, comme Hadoop Distributed File System (HDFS), Cassandra ou Kafka.
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 :
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 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 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 POLICY_NAME
: nom de la stratégie d'emplacement par répartition.DOMAIN_COUNT
: nombre distinct de domaines de disponibilité dans lesquels placer vos VM. La valeur doit être comprise entre1
et8
.REGION
: région dans laquelle créer la stratégie d'emplacement.PROJECT_ID
: ID du projet dans lequel 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 par répartition.DOMAIN_COUNT
: nombre distinct de domaines de disponibilité dans lesquels placer vos VM. La valeur doit être comprise entre1
et8
.- Appliquez la stratégie à une VM existante.
- Appliquez la stratégie lors de la création d'une VM.
- Appliquez la stratégie lors de la création groupée de VM.
- Appliquer la stratégie lors de la création d'un modèle d'instance
- Appliquer la stratégie aux VM d'un MIG
Si votre règle d'emplacement par répartition spécifie plusieurs domaines de disponibilité, vous pouvez l'appliquer à une VM sans l'arrêter. Toutefois, la VM peut devoir être déplacée vers un autre domaine de disponibilité. Au cours de ce processus, Compute Engine arrête la VM ou la migre à chaud en fonction de sa stratégie de maintenance de l'hôte.
La VM et la stratégie d'emplacement par répartition doivent se trouver dans la même région. Par exemple, si la règle d'emplacement se trouve dans la région
us-central1
, la VM doit se trouver dans une zone deus-central1
. Si vous devez migrer une VM vers une autre région, consultez la section Déplacer une VM entre des zones ou des régions.VM_NAME
: nom d'une VM existante.POLICY_NAME
: nom d'une stratégie de répartition.ZONE
: zone où se trouve la VM.PROJECT_ID
: ID du projet dans lequel se trouvent la stratégie de répartition 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 par répartition.POLICY_NAME
: nom d'une stratégie de répartition.VM_NAME
: nom de la VM à créerMACHINE_TYPE
: type de machine pour la VM.POLICY_NAME
: nom d'une stratégie de répartition.ZONE
: Zone dans laquelle créer l'instance de VM.PROJECT_ID
: ID du projet dans lequel se trouve la stratégie de répartition.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 par répartition.VM_NAME
: nom de la VM à créerMACHINE_TYPE
: type de machine pour la VM.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 mise en forme sous la forme
family/IMAGE_FAMILY
. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/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 d'emplacement par répartition.POLICY_NAME
: nom d'une stratégie de répartition.Vous ne pouvez créer de manière groupée des VM qui spécifient une stratégie d'emplacement par répartition que dans la même région que la stratégie d'emplacement.
Lorsque vous créez des VM de manière groupée avec une stratégie d'emplacement par répartition, vous pouvez éventuellement spécifier le domaine de disponibilité dans lequel créer vos VM. Évitez de créer toutes vos VM dans un seul domaine. Sinon, vous ne limitez pas le risque qu'une seule erreur matérielle affecte toutes vos VM.
COUNT
: nombre de VM à créer.MACHINE_TYPE
: type de machine pour les VM.NAME_PATTERN
: modèle de nom des VM. Pour remplacer une séquence de nombres dans le nom d'une VM, utilisez une séquence de caractères de hachage (#
). Par exemple, le modèle de nomvm-#
génère des VM dont les noms commencent parvm-1
,vm-2
, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié parCOUNT
.POLICY_NAME
: nom d'une stratégie de répartition.ZONE
: zone dans laquelle créer les VM de manière groupée.PROJECT_ID
: ID du projet dans lequel se trouve la stratégie de répartition.ZONE
: zone dans laquelle créer les VM de manière groupée.COUNT
: nombre de VM à créer.NAME_PATTERN
: modèle de nom des VM. Pour remplacer une séquence de nombres dans le nom d'une VM, utilisez une séquence de caractères de hachage (#
). Par exemple, le modèle de nomvm-#
génère des VM dont les noms commencent parvm-1
,vm-2
, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié parCOUNT
.MACHINE_TYPE
: type de machine pour les VM.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 mise en forme sous la forme
family/IMAGE_FAMILY
. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/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.
POLICY_NAME
: nom d'une stratégie de répartition.Si vous souhaitez créer un modèle d'instance régional, créez-le dans la même région que la stratégie d'emplacement par répartition. Sinon, la création du modèle d'instance échoue.
Lorsque vous créez un modèle d'instance, vous pouvez éventuellement spécifier le domaine de disponibilité dans lequel créer des VM. Évitez de créer toutes vos VM dans un seul domaine. Sinon, vous ne pouvez pas atténuer le risque qu'une seule erreur matérielle affecte toutes vos VM.
INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.MACHINE_TYPE
: type de machine des VM créés à l'aide du modèle d'instance.POLICY_NAME
: nom d'une stratégie de répartition.Pour créer un modèle d'instance global : méthode
instanceTemplates.insert
.Pour créer un modèle d'instance régional : méthode
regionInstanceTemplates.insert
.PROJECT_ID
: ID du projet dans lequel se trouve la stratégie de répartition.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 mise en forme sous la forme
family/IMAGE_FAMILY
. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/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 des VM créés à l'aide du modèle d'instance.POLICY_NAME
: nom d'une stratégie de répartition.INSTANCE_GROUP_NAME
: nom du MIG à créer.SIZE
: taille du MIG.INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance existant qui spécifie une stratégie d'emplacement par répartition.ZONE
: zone dans laquelle créer le MIG, qui doit se trouver dans la région où se trouve la stratégie d'emplacement par répartition.Pour créer un MIG zonal : méthode
instanceGroupManagers.insert
.Pour créer un MIG régional : méthode
regionInstanceGroupManagers.insert
.PROJECT_ID
: ID du projet dans lequel se trouvent la stratégie de répartition 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 par répartition.INSTANCE_GROUP_NAME
: nom du MIG à créer.SIZE
: taille du MIG.INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance existant qui spécifie une stratégie d'emplacement par répartition.INSTANCE_GROUP_NAME
: nom d'un MIG existant.INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance existant qui spécifie une stratégie d'emplacement par répartition.ZONE
: zone où se trouve le MIG. Vous ne pouvez appliquer la stratégie d'emplacement par répartition qu'à un MIG situé dans la même région que la stratégie d'emplacement.Pour mettre à jour un groupe d'instances géré zonal : méthode
instanceGroupManagers.insert
.Pour mettre à jour un groupe d'instances géré régional : méthode
regionInstanceGroupManagers.insert
.PROJECT_ID
: ID du projet que vous avez utilisé pour créer un MIG existant, stratégie de répartition et modèle d'instance qui spécifie la stratégie de répartition.ZONE
: zone où se trouve le MIG. Vous ne pouvez appliquer la stratégie d'emplacement par répartition qu'à un MIG situé dans la même région que la stratégie d'emplacement.INSTANCE_GROUP_NAME
: nom d'un MIG existant.INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance existant qui spécifie une stratégie d'emplacement par répartition.Découvrez comment afficher les stratégies d'emplacement.
Découvrez comment remplacer, retirer ou supprimer des stratégies d'emplacement.
Découvrez comment effectuer les opérations suivantes avec une VM qui spécifie une stratégie d'emplacement :
Découvrez le processus de migration à chaud lors des événements de maintenance.
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 par répartition aux VM, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
) 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.Ce rôle prédéfini contient les autorisations requises pour créer et appliquer une stratégie de répartition 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 d'emplacement par répartition aux VM :
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer une règle d'emplacement
À moins que vous ne souhaitiez tester l'application de la stratégie d'emplacement par répartition à vos VM, Google Cloud vous recommande de créer des stratégies d'emplacement par répartition avec deux domaines de disponibilité ou plus. Cela réduit le risque que toutes les VM soient affectées par une seule erreur matérielle. Pour en savoir plus, consultez la section À propos des stratégies d'emplacement par répartition.
Pour créer une stratégie d'emplacements par répartition, sélectionnez l'une des options suivantes :
gcloud
Pour créer une stratégie d'emplacement par répartition, utilisez la commande
gcloud compute resource-policies create group-placement
avec l'option--availability-domain-count
.gcloud compute resource-policies create group-placement POLICY_NAME \ --availability-domain-count=DOMAIN_COUNT \ --region=REGION
Remplacez les éléments suivants :
REST
Pour créer une stratégie de répartition, envoyez une requête
POST
à la méthoderesourcePolicies.insert
. Dans le corps de la requête, incluez le champavailabilityDomainCount
.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 :
Appliquer une stratégie d'emplacement par répartition
Vous pouvez appliquer une stratégie d'emplacement par répartition à une VM ou un MIG existants, ou lorsque vous créez des VM, des modèles d'instance ou des MIG.
Pour appliquer une stratégie d'emplacement par répartition à une ressource Compute Engine, sélectionnez l'une des méthodes suivantes :
Après avoir appliqué une stratégie d'emplacement par répartition à une VM, vous pouvez vérifier le domaine de disponibilité dans lequel se trouve la VM en affichant les détails de la VM et en vérifiant la valeur du champ
availabilityDomain
.Appliquer la stratégie à une VM existante
Avant d'appliquer une stratégie d'emplacement par répartition à une VM existante, tenez compte des points suivants :
Si vous souhaitez spécifier le domaine de disponibilité dans lequel placer votre VM, appliquez la règle d'emplacement à la VM en mettant à jour ses propriétés. Lorsque vous mettez à jour les propriétés de la VM, veillez à inclure les champs
resourcePolicies
etscheduling.availabilityDomain
.Pour appliquer une stratégie d'emplacement par répartition à une VM existante, sélectionnez l'une des options suivantes :
gcloud
Pour appliquer une stratégie d'emplacement par répartition à 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 :
REST
Pour appliquer une stratégie de répartition à une VM existante, envoyez une requête
POST
à la méthodeinstances.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 :
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 par répartition que dans la même région que la stratégie d'emplacement.
Pour créer une VM qui spécifie une stratégie d'emplacement par répartition, sélectionnez l'une des options suivantes :
gcloud
Pour créer une VM qui spécifie une stratégie d'emplacement par répartition, exécutez la commande
gcloud compute instances create
avec l'option--resource-policies
.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Remplacez les éléments suivants :
Si vous le souhaitez, incluez l'indicateur
--availability-domain
pour spécifier le domaine de disponibilité dans lequel créer la VM.gcloud compute instances create VM_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Remplacez
DOMAIN_NUMBER
par le numéro du domaine de disponibilité dans lequel vous souhaitez placer votre VM. La valeur doit être comprise entre1
et le nombre de domaines spécifiés dans la stratégie d'emplacement par répartition. Pour vérifier le nombre de domaines dans une stratégie d'emplacement par répartition, affichez les détails de la stratégie d'emplacement.REST
Pour créer une VM qui spécifie une stratégie de répartition, envoyez une requête
POST
à la méthodeinstances.insert
. Dans le corps de la requête, incluez le champresourcePolicies
.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" ] }
Remplacez les éléments suivants :
Si vous le souhaitez, pour spécifier le domaine de disponibilité dans lequel créer la VM, incluez le champ
availabilityDomain
dans le corps de la requête.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": { "availabilityDomain": DOMAIN_NUMBER } }
Remplacez
DOMAIN_NUMBER
par le numéro du domaine de disponibilité dans lequel vous souhaitez placer votre VM. La valeur doit être comprise entre1
et le nombre de domaines spécifiés dans la stratégie d'emplacement par répartition. Pour vérifier le nombre de domaines dans une stratégie d'emplacement par répartition, affichez les détails de la stratégie d'emplacement.Pour en savoir plus sur les options de configuration permettant de créer une VM, consultez la page Créer et démarrer une instance de VM.
Appliquer la stratégie lors de la création groupée de VM
Avant de créer des VM de manière groupée qui spécifient une stratégie d'emplacement par répartition, vérifiez les points suivants :
Pour créer de manière groupée des VM qui spécifient une stratégie d'emplacement par répartition, sélectionnez l'une des options suivantes :
gcloud
Pour créer de manière groupée des VM qui spécifient une stratégie d'emplacement par répartition, exécutez la commande
gcloud compute instances bulk create
avec l'option--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 \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
Remplacez les éléments suivants :
Si vous souhaitez spécifier le domaine de disponibilité dans lequel créer les VM de manière groupée, incluez l'indicateur
--availability-domain
.gcloud compute instances bulk create \ --availability-domain=DOMAIN_NUMBER \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
Remplacez
DOMAIN_NUMBER
par le numéro du domaine de disponibilité dans lequel vous souhaitez placer votre VM. La valeur doit être comprise entre1
et le nombre de domaines spécifiés dans la stratégie d'emplacement par répartition. Pour vérifier le nombre de domaines dans une stratégie d'emplacement par répartition, affichez les détails de la stratégie d'emplacement.REST
Pour créer de manière groupée des VM qui spécifient une stratégie de répartition, envoyez une requête
POST
à la méthodeinstances.bulkInsert
. Dans le corps de la requête, incluez le champresourcePolicies
.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://www.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": [ "POLICY_NAME" ] } }
Remplacez les éléments suivants :
Si vous le souhaitez, pour spécifier le domaine de disponibilité dans lequel créer les VM de manière groupée, incluez le champ
availabilityDomain
dans le corps de la requête.POST https://www.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": [ "POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } } }
Remplacez
DOMAIN_NUMBER
par le numéro du domaine de disponibilité dans lequel vous souhaitez placer votre VM. La valeur doit être comprise entre1
et le nombre de domaines spécifiés dans la stratégie d'emplacement par répartition. Pour vérifier le nombre de domaines dans une stratégie d'emplacement par répartition, affichez les détails de la stratégie d'emplacement.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 règle lors de la création d'un modèle d'instance
Avant de créer un modèle d'instance qui spécifie une stratégie d'emplacement par répartition, vérifiez les points suivants :
Après avoir créé un modèle d'instance qui spécifie une stratégie d'emplacement par répartition, 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 d'emplacement par répartition, sélectionnez l'une des options suivantes :
gcloud
Pour créer un modèle d'instance spécifiant une stratégie d'emplacement par répartition, 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 une stratégie d'emplacement par répartition, exécutez la commande suivante :
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Remplacez les éléments suivants :
Si vous le souhaitez, incluez l'indicateur
--availability-domain
pour spécifier le domaine de disponibilité dans lequel créer les VM.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Remplacez
DOMAIN_NUMBER
par le numéro du domaine de disponibilité dans lequel créer vos VM. La valeur doit être comprise entre1
et le nombre de domaines spécifiés dans la stratégie d'emplacement. Pour vérifier le nombre de domaines dans une stratégie d'emplacement par répartition, affichez les détails de la stratégie d'emplacement.REST
Pour créer un modèle d'instance qui spécifie une stratégie d'emplacement par répartition, envoyez une requête
POST
à l'une des méthodes suivantes :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 une stratégie d'emplacement par répartition, 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" ] } }
Remplacez les éléments suivants :
Si vous le souhaitez, pour spécifier le domaine de disponibilité dans lequel créer les VM, incluez le champ
availabilityDomain
dans le corps de la requête.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": { "availabilityDomain": DOMAIN_NUMBER } } }
Remplacez
DOMAIN_NUMBER
par le numéro du domaine de disponibilité dans lequel créer vos VM. La valeur doit être comprise entre1
et le nombre de domaines spécifiés dans la stratégie d'emplacement. Pour vérifier le nombre de domaines dans une stratégie d'emplacement par répartition, affichez les détails de la stratégie d'emplacement.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 d'emplacement par répartition, 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 par répartition 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 d'emplacement par répartition, 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 d'emplacement par répartition, utilisez 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 par répartition, 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 :
REST
Pour créer un MIG à l'aide d'un modèle d'instance qui spécifie une stratégie d'emplacement par répartition, 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 par répartition, 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 :
Pour en savoir plus sur les options de configuration permettant de créer des MIG, consultez la page Scénarios de base pour la création de MIG.
Appliquer la règle à 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 d'emplacement par répartition, 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 répartition, utilisez 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 d'emplacement par répartition 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 INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE
Remplacez les éléments suivants :
REST
Pour mettre à jour un MIG afin qu'il utilise un modèle d'instance spécifiant une stratégie d'emplacement par répartition 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 spécifiant une stratégie de répartition 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/INSTANCE_GROUP_NAME { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME" }
Remplacez les éléments suivants :
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.
Étape suivante
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/28 (UTC).
-