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

  • Créez un modèle d'instance, qui est nécessaire pour créer un groupe d'instances géré.
  • 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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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. Terraform

      Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Pour en savoir plus, consultez Set up authentication for a local development environment.

      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.

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 la console Google Cloud, la gcloud CLI, Terraform ou REST.

Console

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

    Accéder à la page "Groupes d'instances"

    Les étapes restantes s'affichent dans la console Google Cloud.

  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 nouveau groupe d'instances géré :
  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. Dans le champ Nombre d'instances ou Autoscaling, spécifiez le nombre d'instances pour ce groupe. Pensez à provisionner suffisamment de VM pour prendre en charge votre application en cas de défaillance d'une zone.
  7. Pour Emplacement, sélectionnez Plusieurs zones.
  8. Choisissez une région et sélectionnez les zones que vous souhaitez utiliser. Si vous avez choisi un modèle d'instance régional, la région est automatiquement sélectionnée en fonction de la région du modèle.
  9. Sous Forme de distribution cible, sélectionnez Régulière. 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, décochez la case Autoriser la redistribution des instances sous Redistribution des instances.
  11. Terminez le processus de création de MIG.
  12. Pour créer le MIG, cliquez sur Créer.

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, consultez la section Désactiver la redistribution proactive des instances.

Terraform

Si vous n'avez pas encore créé de modèle d'instance, qui spécifie le type de machine, l'image de disque de démarrage, le réseau et les autres propriétés de VM que vous souhaitez pour chaque VM de votre MIG, créez Un modèle d'instance.

Pour créer un MIG régional, vous pouvez utiliser la ressource google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

REST

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 (facultatif). 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. Pour un modèle d'instance régional, vous devez spécifier l'URL complète ou partielle du modèle. https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template est un exemple d'URL complète et projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template est un exemple d'URL partielle.
  • 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 ou ANY_SINGLE_ZONE, vous devez désactiver la redistribution proactive des instances.

Pour en savoir plus, consultez la documentation suivante :

Étape suivante