Créer un MIG avec des VM dans plusieurs zones d'une région

Ce document explique comment créer un groupe d'instances géré (MIG) dont les VM sont réparties dans plusieurs zones d'une région. En répartissant la charge de l'application sur plusieurs zones, vous protégez votre charge de travail contre les défaillances de zone. En cas de défaillance d'une zone, votre application peut continuer à diffuser les instances à partir des zones disponibles de la même région.

Ce type de MIG est également appelé MIG zonal. Pour en savoir plus, consultez la page À propos des MIG régionaux.

Vous pouvez également découvrir d'autres scénarios de base pour la création d'un MIG.

Avant de commencer

Limites

Pour afficher la liste complète des limites des MIG, qui varie en fonction de la configuration que vous utilisez, consultez la section Limites des MIG.

Créer un MIG avec des VM dans plusieurs zones d'une région

Utilisez Cloud Console, gcloud CLI ou l'API Compute Engine.

Console

  1. Dans Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

  2. Cliquez sur Créer un groupe d'instances pour définir un nouveau groupe d'instances.
  3. Sélectionnez l'une des options du groupe d'instances géré : sans état (par défaut) ou avec état.
  4. Attribuez un nom et éventuellement une description à votre groupe d'instances.
  5. Choisissez un modèle d'instance pour le groupe d'instances ou créez-en un.
  6. Indiquez le nombre de VM pour ce groupe. Pensez à provisionner suffisamment de VM pour prendre en charge votre application en cas de défaillance d'une zone.
  7. Sous Emplacement, sélectionnez Plusieurs zones.
  8. Choisissez une région et sélectionnez les zones que vous souhaitez utiliser.
  9. Sous Forme de distribution cible, sélectionnez Égale. Si vous souhaitez sélectionner une autre forme, consultez la page Définir une forme de distribution cible pour les VM d'un MIG régional.
  10. Si vous souhaitez désactiver la redistribution proactive des instances
    1. Assurez-vous que le mode d'autoscaling est défini sur Désactivé : ne pas procéder à un autoscaling.
    2. Sous Redistribution des instances, décochez la case Activer la redistribution des instances.
  11. Terminez le processus de création de MIG.

gcloud

Tous les MIG requièrent un modèle d'instance. Commencez par créer un modèle d'instance si vous n'en avez pas. Par exemple, la commande suivante crée un modèle d'instance de base doté des propriétés par défaut :

gcloud compute instance-templates create example-template

Exécutez ensuite la commande instance-groups managed create avec l'option --region. Par exemple, la commande suivante crée un groupe d'instances géré régional dans trois zones de la région us-east1 :

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

Si vous souhaitez sélectionner des zones spécifiques que le groupe doit utiliser, ajoutez l'option --zones :

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

Si vous souhaitez désactiver la redistribution proactive des instances, définissez l'option --instance-redistribution-type sur NONE. Vous ne pouvez pas désactiver la redistribution proactive des instances si l'autoscaling est activé.

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --instance-redistribution-type NONE \
    --region us-east1

API

Tous les MIG requièrent un modèle d'instance. Commencez par créer un modèle d'instance si vous n'en avez pas.

Ensuite, envoyez une requête POST à la méthode regionInstanceGroupManagers.insert. Dans le corps de la requête, spécifiez le nom du groupe, sa taille et l'URL du modèle d'instance. Vous pouvez éventuellement spécifier d'autres champs, tels que le nom de base pour les instances du groupe.

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour cette requête.
  • REGION : région du groupe.
  • BASE_INSTANCE_NAME : nom d'instance pour chaque instance de VM créée au sein du groupe. Par exemple, le nom d'instance de base example-instance permettrait la création d'instances portant des noms du type example-instance-[RANDOM_STRING], où [RANDOM_STRING] est une chaîne aléatoire générée par le serveur.
  • INSTANCE_TEMPLATE_NAME : modèle d'instance à utiliser.
  • INSTANCE_GROUP_NAME : nom du MIG.
  • TARGET_SIZE : nombre cible de VM pour le groupe.

Si vous souhaitez sélectionner des zones spécifiques, ou si vous créez des VM dans une région comportant un nombre de zones différent de trois, incluez la propriété distributionPolicy dans votre requête et fournissez la liste des zones. Remplacez ZONE par le nom d'une zone dans laquelle créer des VM.

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

Par exemple, la requête qui suit permet de créer un MIG régional nommé example-rmig et comportant 10 instances gérées réparties sur les zones us-east1-b et us-east1-c :

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

Selon votre configuration et votre utilisation du MIG, différentes règles et actions peuvent affecter les instances du groupe. Pour répertorier les instances gérées opérationnelles, consultez la section Vérifier l'état des instances gérées.

Si la capacité de chaque zone est insuffisante pour prendre en charge les VM du groupe, Compute Engine crée autant de VM que possible, puis tente de créer les VM restantes lorsqu'une capacité supplémentaire devient disponible.

Si vous ne spécifiez pas explicitement des zones individuelles dans votre requête, Compute Engine choisit automatiquement trois zones dans lesquelles créer des VM. Si vous devez créer des VM dans un nombre de zones différent de trois, ou si vous souhaitez sélectionner les zones utilisées, vous pouvez fournir une liste des zones dans votre requête. Pour en savoir plus, consultez la section Sélection de zones.

Répartition des VM entre les zones

Par défaut, un MIG régional répartit les VM le plus équitablement possible entre les zones sélectionnées. Puisque vous créez un MIG régional, gardez à l'esprit que certaines ressources, comme les disques persistants existants et les GPU, sont zonales. Si le modèle d'instance de votre MIG spécifie des ressources zonales, vous devez vous assurer que toutes ces ressources sont présentes dans toutes les zones sélectionnées afin de pouvoir les associer aux VM créées par le MIG régional. Si vous souhaitez que le groupe vérifie l'existence de ressources zonales pour vous, vous pouvez également définir la forme de distribution cible du MIG pour créer des instances uniquement dans les zones contenant ces ressources.

Pour en savoir plus, consultez les documents suivants :

Redistribution proactive des instances

La redistribution proactive des instances est activée par défaut. Si vous devez gérer manuellement le nombre de VM dans chaque zone ou définir la forme de distribution cible du MIG sur BALANCED, vous devez désactiver la redistribution proactive des instances.

Pour en savoir plus, consultez la documentation suivante :

Étape suivante