Désactiver et réactiver la redistribution proactive des VM dans un MIG régional


Dans un groupe d'instances géré (MIG) régional, pour conserver un nombre équitable d'instances de machines virtuelles (VM) dans les zones sélectionnées de la région, utilisez le redistribution proactive des instances. Cette option de configuration maximise la disponibilité de votre application en cas de défaillance de la zone.

La redistribution proactive des instances est activée par défaut pour les MIG régionaux. Lorsque la redistribution proactive des instances est désactivée, le groupe ne tente pas de redistribuer les VM de manière proactive entre les zones. La désactivation de la redistribution proactive des instances est utile si vous souhaitez effectuer les opérations suivantes :

  • supprimer ou abandonner des VM du groupe sans affecter les autres VM en cours d'exécution. Par exemple, vous pouvez supprimer une VM de nœud de calcul par lot une fois la tâche terminée sans affecter les autres nœuds de calcul ;
  • protéger des VM avec des charges de travail avec état contre la suppression automatique indésirable en raison d'une redistribution proactive.
  • Définissez la forme de distribution cible du groupe d'instances géré sur BALANCED ou ANY_SINGLE_ZONE.

Vous pouvez désactiver la redistribution proactive des instances lors de la création d'un MIG régional. Vous pouvez également l'activer ou la désactiver pour un MIG régional existant.

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:

    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. 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 groupe avec la redistribution proactive des instances désactivée

Pour créer un MIG régional avec la redistribution proactive des instances désactivée, utilisez la console Google Cloud, gcloud CLI ou REST.

Console

  1. Dans Google 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. Attribuez un nom et éventuellement une description à votre groupe d'instances.
  4. Choisissez un modèle d'instance pour le groupe d'instances ou créez-en un.
  5. Indiquez le nombre de VM pour ce groupe. Pensez à provisionner suffisamment de VM pour les charges de travail à disponibilité élevée afin que votre application soit prise en charge en cas de défaillance zonale.
  6. Sous Emplacement, sélectionnez Plusieurs zones.
  7. Choisissez une région et sélectionnez les zones que vous souhaitez utiliser.
  8. Pour désactiver la redistribution proactive des instances, sous Redistribution des instances, décochez la case Autoriser la redistribution des instances.
  9. Terminez le processus de création de MIG.

gcloud

Pour créer un MIG régional sans redistribution proactive des instances, utilisez la commande gcloud compute instance-groups managed create avec l'option --instance-redistribution-type définie sur NONE.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_NAME \
    --size TARGET_SIZE \
    --zones ZONES \
    --instance-redistribution-type NONE

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance à utiliser pour le groupe
  • TARGET_SIZE : taille cible du groupe
  • ZONES : liste des zones d'une région unique dans lesquelles vous souhaitez déployer les VM.

Par exemple :

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

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, utilisez la ressource google_compute_region_instance_group_manager.

Pour désactiver la redistribution proactive des instances dans un MIG régional, incluez le bloc update_policy et définissez le champ instance_redistribution_type sur NONE.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  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

Pour créer un MIG régional sans autoscaling ni redistribution proactive des instances, envoyez une requête POST à la méthode regionInstanceGroupManagers.insert. Dans le corps de la requête, incluez la propriété updatePolicy et définissez son champ instanceRedistributionType sur NONE.

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

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour cette requête
  • REGION : région du groupe d'instances
  • INSTANCE_GROUP_NAME : nom du MIG
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance à utiliser pour le groupe
  • TARGET_SIZE : taille cible du groupe d'instances
  • ZONE : nom d'une zone de la région unique dans laquelle vous souhaitez déployer les VM.

Désactiver la redistribution proactive des instances

Pour désactiver ou réactiver la redistribution proactive des instances, utilisez la console Google Cloud, gcloud CLI ou REST.

Console

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

    Accéder à la page Groupes d'instances

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances que vous souhaitez modifier.
  3. Cliquez sur Modifier pour modifier le groupe d'instances géré.
  4. Sous Redistribution des instances, décochez la case Autoriser la redistribution des instances.
  5. Cliquez sur Enregistrer.

gcloud

Pour désactiver la redistribution proactive des instances, définissez l'option --instance-redistribution-type sur NONE à l'aide d'une commande comme suit :

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG
  • REGION : région du groupe d'instances

REST

Pour désactiver la redistribution proactive des instances, définissez le champ instanceRedistributionType sur NONE à l'aide de l'une des méthodes suivantes :

  • Pour un MIG régional sans autoscaling ou pour un MIG régional avec autoscaling dont le mode est défini sur OFF ouONLY_SCALE_OUT, utilisez la méthode regionInstanceGroupManagers.patch.

    Exemple :

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
    
    {
     "updatePolicy": {
        "instanceRedistributionType": "NONE"
     }
    }
    
  • Pour un MIG régional avec autoscaling dont le mode est défini sur ON, utilisez la méthode regionInstanceGroupManagers.patch (bêta).

    Exemple :

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
    
    {
     "updatePolicy": {
          "instanceRedistributionType": "NONE"
      }
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour cette requête
  • REGION : région du groupe d'instances
  • INSTANCE_GROUP_NAME : nom du MIG

Activer la redistribution proactive des instances

Pour activer la redistribution proactive des instances, exécutez une commande semblable à celle utilisée pour désactiver la redistribution proactive des instances, mais définissez le type de redistribution des instances sur PROACTIVE.

Si vous avez supprimé ou abandonné manuellement certaines instances gérées, entraînant une répartition inégale des VM au sein de la région, vous devez rééquilibrer manuellement le groupe avant de pouvoir réactiver la redistribution proactive des instances. Il ne doit pas y avoir plus d'une VM de différence entre deux zones.

Un MIG régional n'autorise pas l'activation de la redistribution proactive des instances tant que les VM ne sont pas réparties de manière homogène entre les zones (c'est-à-dire tant qu'il existe une différence d'au moins deux VM entre deux zones). Cela permet d'éviter une suppression automatique involontaire des VM dans les zones contenant le plus de VM, ce qui serait l'option utilisée pour obtenir une répartition régulière.

Étape suivante