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

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet 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 :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la Google Cloud console pour accéder aux Google Cloud services et aux API, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • Définissez une région et une zone par défaut.
  • Terraform

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

    1. Installez la Google Cloud CLI.

    2. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    3. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur : Créer des identifiants d'authentification locaux pour votre compte utilisateur :

      gcloud auth application-default login

      Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

      Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l' Google Cloud authentification.

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 Google Cloud , 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.googleapis.com/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.googleapis.com/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 Google Cloud , 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.googleapis.com/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