Réparer une VM dans une autre zone

Ce document explique comment autoriser un groupe d'instances géré (MIG) régional à réparer une instance de machine virtuelle (VM) dans une autre zone lorsque le MIG ne peut pas réparer la VM dans sa zone d'origine. Pour en savoir plus sur les réparations dans un MIG, consultez la section À propos de la réparation des VM pour la haute disponibilité.

Lorsque vous créez un MIG régional, vous sélectionnez une ou plusieurs zones dans lesquelles le MIG distribue ses VM. Par défaut, si une VM du MIG échoue, le MIG tente de la réparer dans sa zone d'origine. Vous pouvez également autoriser le MIG à réparer cette VM dans l'une des autres zones sélectionnées, ce qui est utile lorsque le MIG ne peut pas réparer la VM dans sa zone d'origine. Le MIG choisit l'autre zone en fonction de la capacité et du quota disponibles.

Limites

Lorsque vous configurez un MIG régional pour réparer une VM dans une autre zone, les limites suivantes s'appliquent :

Avant de commencer

Autoriser les réparations dans une autre zone

Pour autoriser un MIG à réparer une VM dans une autre zone, sélectionnez l'une des options suivantes :

Console

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

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

  2. Si vous disposez déjà d'un MIG, procédez comme suit :

    1. Cliquez sur le nom du MIG.
    2. Cliquez sur Modifier.
  3. Si vous ne disposez pas encore d'un MIG, procédez comme suit :

    1. Cliquez sur Créer un groupe d'instances.
    2. Saisissez un nom.
    3. Sélectionnez un modèle d'instance.
    4. Dans la section Emplacement, sélectionnez Plusieurs zones, puis une région et des zones.
    5. Dans le menu déroulant Forme de distribution cible, sélectionnez Équilibrée ou Toute.

      • Si vous sélectionnez Équilibrée, dans la boîte de dialogue qui s'affiche, cliquez sur Désactiver la redistribution des instances.

      • Si vous souhaitez sélectionner Toute, vous devez d'abord supprimer la configuration de l'autoscaling. Pour supprimer l'autoscaling, dans le menu déroulant Mode d'autoscaling, cliquez sur Supprimer la configuration de l'autoscaling.

  4. Dans la section Cycle de vie de l'instance de VM, assurez-vous que les champs suivants sont définis comme suit :

    1. La liste Action par défaut en cas d'échec est définie sur Réparer l'instance.

    2. L'option Mises à jour lors de la réparation des instances de VM est définie sur Mettre à jour la configuration de l'instance.

    3. Dans la section Modifier la zone lors de la réparation de l'instance de VM, cochez la case Autoriser la réparation des VM dans une autre zone.

  5. Pour les autres paramètres, vous pouvez utiliser les valeurs par défaut ou modifier les champs.

  6. Une fois terminé, cliquez sur Enregistrer pour un MIG existant ou sur Créer pour un nouveau MIG.

gcloud

Pour configurer un MIG existant afin de réparer une VM dans une autre zone, utilisez la update commande :

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair \
    --region=REGION

Pour créer un MIG capable de réparer une VM dans une autre zone, utilisez la create commande :

gcloud compute instance-groups managed create MIG_NAME \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --zones=ZONES \
    --target-distribution-shape=SHAPE \
    --instance-redistribution-type=none \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair

Remplacez les éléments suivants :

  • MIG_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l' ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :
    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_ID
  • SIZE : taille cible du MIG.
  • ZONES: liste des zones d'une région dans laquelle vous souhaitez créer les VM dans le MIG.
  • SHAPE : forme de distribution cible. Cette valeur peut être balanced ou any.
  • REGION : région où se trouve le MIG.

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 capable de réparer une VM dans une autre zone, utilisez la google_compute_region_instance_group_manager ressource.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "example-rmig"
  base_instance_name = "example-rmig-instance"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "BALANCED"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_lifecycle_policy {
    default_action_on_failure = "REPAIR"
    force_update_on_repair    = "YES"
    on_repair {
      allow_changing_zone = "YES"
    }
  }

  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 configurer un MIG existant afin de réparer une VM dans une autre zone, utilisez la regionInstanceGroupManagers.patch méthode :

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "YES"
      },
      "forceUpdateOnRepair": "YES"
    }
}

Pour créer un MIG capable de réparer une VM dans une autre zone, utilisez la regionInstanceGroupManagers.insert méthode :

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "SHAPE"
  }
  "updatePolicy": {
    "instanceRedistributionType": none
  }
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES",
    "onRepair": {
      "allowChangingZone": "YES"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : votre ID de projet.
  • REGION : région où se trouve le MIG.
  • MIG_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l' ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :
    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_ID
  • SIZE : taille cible du MIG.
  • SHAPE : forme de distribution cible. Cette valeur peut être BALANCED ou ANY.

Interdire les réparations dans une autre zone

Si vous avez configuré un MIG pour réparer une VM dans une autre zone, vous pouvez rétablir le paramètre par défaut dans lequel le MIG répare la VM dans sa zone d'origine.

Pour interdire les réparations dans une autre zone, sélectionnez l'une des options suivantes :

Console

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

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

  2. Cliquez sur le nom du MIG.

  3. Cliquez sur Modifier.

  4. Accédez à la section Cycle de vie de l'instance de VM.

  5. Dans la section Modifier la zone lors de la réparation de l'instance de VM, décochez la case Autoriser la réparation des VM dans une autre zone.

  6. Cliquez sur Enregistrer.

gcloud

Pour interdire les réparations dans une autre zone, utilisez la update commande :

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=NO \
    --region=REGION

Remplacez les éléments suivants :

  • MIG_NAME : nom du MIG.
  • REGION : région où se trouve le MIG.

REST

Pour interdire les réparations dans une autre zone, utilisez la regionInstanceGroupManagers.patch méthode :

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "NO"
      }
    }
}

Remplacez les éléments suivants :

  • PROJECT_ID : votre ID de projet.
  • REGION : région où se trouve le MIG.
  • MIG_NAME : nom du MIG.

Étape suivante