Créer un MIG avec plusieurs types de machines


Ce document explique comment créer un groupe d'instances géré (MIG) avec la flexibilité des instances, qui vous permet de spécifier plusieurs types de machines dans le MIG.

La flexibilité des instances permet d'améliorer la disponibilité des ressources, en particulier pour les applications pouvant fonctionner sur différents types de machines et nécessitant une capacité à grande échelle ou du matériel à forte demande. Pour en savoir plus, consultez la page À propos de la flexibilité des instances.

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 Google Cloud services et aux API. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:

    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.

Créer un MIG avec plusieurs types de machines

Console

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

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

  2. Cliquez sur Créer un groupe d'instances.

  3. Dans le champ Nom, saisissez un nom pour le MIG.

  4. Dans la liste Modèle d'instance, sélectionnez le modèle d'instance que vous souhaitez utiliser pour le MIG.

  5. Avant de pouvoir spécifier le nombre d'instances et ajouter des sélections d'instances, vous devez procéder comme suit:

    1. Définissez un emplacement comme suit:

      1. Faites défiler la page jusqu'à la section Emplacement, puis sélectionnez Plusieurs zones.

      2. Dans les menus déroulants Régions et Zones, sélectionnez une région et les zones dans lesquelles vous souhaitez créer les VM dans le MIG. Si vous avez sélectionné un modèle d'instance régional, la région de ce modèle est sélectionnée par défaut.

      3. Dans le champ Forme de distribution cible, sélectionnez Équilibrée ou Une des zones.

      4. Dans la boîte de dialogue qui s'affiche, cliquez sur Désactiver la redistribution des instances.

    2. Supprimez la configuration d'autoscaling comme suit:

      1. Dans la section Autoscaling (Autoscaling), dans le menu déroulant Mode d'autoscaling, cliquez sur Supprimer la configuration d'autoscaling.

      2. Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer.

    3. Faites défiler la page jusqu'au champ Nombre d'instances.

  6. Dans le champ Nombre d'instances, spécifiez le nombre de VM que vous souhaitez inclure dans le groupe.

  7. Dans la section Sélections d'instances, cliquez sur Ajouter des sélections d'instances.

    La fenêtre Sélections d'instances s'ouvre.

    1. Cliquez sur Ajouter une sélection d'instances.

    2. Dans la section Sélection de l'instance, procédez comme suit:

      1. Dans le champ Nom, saisissez un nom pour la sélection d'instance.

      2. Dans la section Types de machines, cliquez sur Ajouter un type de machine, sélectionnez le type de machine que vous souhaitez ajouter dans la sélection d'instances, puis cliquez sur OK.

        Répétez cette étape pour chaque type de machine que vous souhaitez ajouter à la sélection d'instances.

      3. Une fois que vous avez ajouté les types de machines à la sélection d'instances, cliquez sur OK.

  8. Dans la fenêtre Sélections d'instances, cliquez sur OK.

  9. Conservez les paramètres par défaut des autres champs ou modifiez-les si nécessaire.

  10. Cliquez sur Créer.

gcloud

Pour créer un MIG régional avec plusieurs types de machines, utilisez la commande instance-groups managed create comme suit:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

Les MIG zonaux ne sont pas compatibles avec la flexibilité des instances. Toutefois, si vous souhaitez créer un MIG dans une seule zone, définissez la forme de distribution cible sur any-single-zone. De plus, si vous souhaitez une zone spécifique, utilisez la forme de distribution any-single-zone et incluez l'indicateur --zones ZONE.

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • REGION: région dans laquelle vous souhaitez créer le MIG.
  • TARGET_SIZE : nombre de VM que le MIG doit créer et gérer.
  • INSTANCE_TEMPLATE : nom du modèle d'instance.
  • SHAPE : forme de distribution cible. La valeur peut être balanced ou any-single-zone. Les autres formes de distribution cible ne sont pas acceptées.
  • MACHINE_TYPE: types de machines que vous souhaitez configurer dans le MIG (par exemple, n1-standard-16,n2-standard-16,e2-standard-16).

Terraform

Si vous n'avez pas encore créé de modèle d'instance, qui spécifie les 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 avec plusieurs types de machines, utilisez la ressource google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name               = "flex-igm"
  base_instance_name = "tf-test-flex-igm"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "ANY_SINGLE_ZONE"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_flexibility_policy {
    instance_selections {
      name          = "default-instance-selection"
      machine_types = ["n1-standard-16", "n2-standard-16", "e2-standard-16"]
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

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

REST

Pour créer un MIG régional avec plusieurs types de machines, envoyez une requête POST à la méthode regionInstanceGroupManagers.insert.

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

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": TARGET_SIZE,
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "distributionPolicy": {
    "targetShape": "SHAPE"
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ]
      }
    }
  }
}

Les MIG zonaux ne sont pas compatibles avec la flexibilité des instances. Toutefois, si vous souhaitez créer un MIG dans une seule zone, définissez la forme de distribution cible sur ANY_SINGLE_ZONE. De plus, si vous souhaitez une zone spécifique, utilisez la forme de distribution ANY_SINGLE_ZONE et incluez le champ distributionPolicy.zones[].zone dans la requête.

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • REGION: région dans laquelle vous souhaitez créer le MIG.
  • INSTANCE_GROUP_NAME : nom du MIG.
  • TARGET_SIZE : nombre de VM que le MIG doit créer et gérer.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance.
  • SHAPE : forme de distribution cible. La valeur peut être BALANCED ou ANY_SINGLE_ZONE. Les autres formes de distribution cible ne sont pas acceptées.
  • INSTANCE_SELECTION: nom de la liste des types de machines.
  • MACHINE_TYPE: types de machines que vous souhaitez configurer dans le MIG (par exemple, "n1-standard-16","n2-standard-16","e2-standard-16").

Étape suivante