VM in einer alternativen Zone reparieren

In diesem Dokument wird beschrieben, wie Sie einer regionalen verwalteten Instanzgruppe (Managed Instance Group, MIG) erlauben, eine VM-Instanz in einer alternativen Zone zu reparieren, wenn die MIG die VM nicht in der ursprünglichen Zone reparieren kann. Weitere Informationen zu Reparaturen in einer MIG finden Sie unter VMs für Hochverfügbarkeit reparieren.

Wenn Sie eine regionale MIG erstellen, wählen Sie eine oder mehrere Zonen aus, in denen die VMs der MIG verteilt werden. Wenn eine VM in der MIG ausfällt, versucht die MIG standardmäßig, diese VM in ihrer ursprünglichen Zone zu reparieren. Optional können Sie zulassen, dass die MIG die VM in einer der anderen ausgewählten Zonen repariert. Das ist besonders dann nützlich, wenn die MIG die VM in der ursprünglichen Zone nicht reparieren kann. Die MIG wählt die alternative Zone basierend auf der verfügbaren Kapazität und dem Kontingent aus.

Einschränkungen

Wenn Sie eine regionale MIG so konfigurieren, dass eine VM in einer alternativen Zone repariert werden kann, gelten die folgenden Einschränkungen:

Vorbereitung

Reparaturen in einer alternativen Zone zulassen

Wählen Sie eine der folgenden Optionen aus, damit eine MIG eine VM in einer alternativen Zone reparieren kann:

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Wenn Sie bereits eine MIG haben, gehen Sie so vor:

    1. Klicken Sie auf den Namen der MIG.
    2. Klicken Sie auf Bearbeiten.
  3. Wenn Sie noch keine MIG haben, gehen Sie so vor:

    1. Klicken Sie auf Instanzgruppe erstellen.
    2. Geben Sie einen Namen ein.
    3. Wählen Sie eine Instanzvorlage aus.
    4. Wählen Sie im Abschnitt Standort die Option Mehrere Zonen aus und wählen Sie dann eine Region und Zonen aus.
    5. Wählen Sie im Drop-down-Menü Zielverteilungsform die Option Ausgeglichen oder Beliebig aus.

      • Wenn Sie Ausgeglichen auswählen, klicken Sie im angezeigten Dialogfeld auf Umverteilung von Instanzen deaktivieren.

      • Wenn Sie Beliebig auswählen möchten, müssen Sie zuerst die Autoscaling-Konfiguration löschen. Wenn Sie das Autoscaling löschen möchten, klicken Sie im Drop-down-Menü Autoscaling-Modus auf Autoscaling-Konfiguration löschen.

  4. Prüfen Sie im Abschnitt Lebenszyklus von VM-Instanzen, ob die folgenden Felder so festgelegt sind:

    1. Die Liste Standardaktion bei Fehler ist auf Instanz reparieren festgelegt.

    2. Die Option Updates während VM-Instanzreparatur ist auf Instanzkonfiguration aktualisieren festgelegt.

    3. Klicken Sie im Abschnitt Zone während der Reparatur von VM-Instanzen ändern das Kästchen Reparatur von VMs in einer alternativen Zone zulassen an.

  5. Für die anderen Einstellungen können Sie entweder die Standardwerte verwenden oder die Felder ändern.

  6. Klicken Sie anschließend bei einer vorhandenen MIG auf Speichern oder bei einer neuen MIG auf Erstellen.

gcloud

Verwenden Sie den Betabefehl update, um eine vorhandene MIG so zu konfigurieren, dass VMs in einer alternativen Zone repariert werden:

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

Verwenden Sie den Betabefehl create, um eine MIG zu erstellen, die VMs in einer alternativen Zone reparieren kann:

gcloud beta 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

Ersetzen Sie Folgendes:

  • MIG_NAME: Name der MIG.
  • INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von VMs in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:
    • Für eine regionale Instanzvorlage: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Für eine globale Instanzvorlage: INSTANCE_TEMPLATE_ID
  • SIZE: Die Zielgröße der MIG.
  • ZONES: Die Liste der Zonen in einer Region, in denen Sie die VMs in der verwalteten Instanzgruppe erstellen möchten.
  • SHAPE: Die Zielverteilungsform. Dieser Wert kann balanced oder any sein.
  • REGION: Die Region, in der sich die MIG befindet.

Terraform

Wenn Sie noch keine Instanzvorlage erstellt haben, die den Maschinentyp, das Bootlaufwerk-Image, das Netzwerk und andere VM-Attribute angibt, die Sie für jede VM in Ihrer MIG verwenden möchten, erstellen Sie eine Instanzvorlage.

Verwenden Sie die Ressource google_compute_region_instance_group_manager, um eine MIG zu erstellen, die VMs in einer alternativen Zone reparieren kann.

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
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

REST

Verwenden Sie die Betamethode regionInstanceGroupManagers.patch, um eine vorhandene MIG so zu konfigurieren, dass VMs in einer alternativen Zone repariert werden:

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

Verwenden Sie die Betamethode regionInstanceGroupManagers.insert, um eine MIG zu erstellen, die VMs in einer alternativen Zone reparieren kann:

POST https://compute.s3nsapis.fr/compute/beta/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"
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: Die Region, in der sich die MIG befindet.
  • MIG_NAME: Name der MIG.
  • INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von VMs in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:
    • Für eine regionale Instanzvorlage: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Für eine globale Instanzvorlage: INSTANCE_TEMPLATE_ID
  • SIZE: Die Zielgröße der MIG.
  • SHAPE: Die Zielverteilungsform. Dieser Wert kann BALANCED oder ANY sein.

Reparaturen in einer alternativen Zone nicht zulassen

Wenn Sie eine MIG so konfiguriert haben, dass VMs in einer alternativen Zone repariert werden, können Sie die Standardeinstellung wiederherstellen, bei der die MIG die VM in der ursprünglichen Zone repariert.

Wenn Sie Reparaturen in einer alternativen Zone nicht zulassen möchten, wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf den Namen der MIG.

  3. Klicken Sie auf Bearbeiten.

  4. Rufen Sie den Abschnitt Lebenszyklus von VM-Instanzen auf.

  5. Deaktivieren Sie im Abschnitt Zone während der Reparatur von VM-Instanzen ändern das Kästchen Reparatur von VMs in einer alternativen Zone zulassen.

  6. Klicken Sie auf Speichern.

gcloud

Wenn Sie Reparaturen in einer alternativen Zone nicht zulassen möchten, verwenden Sie den Betabefehl update:

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

Ersetzen Sie Folgendes:

  • MIG_NAME: Name der MIG.
  • REGION: Die Region, in der sich die MIG befindet.

REST

Wenn Sie Reparaturen in einer alternativen Zone nicht zulassen möchten, verwenden Sie die Betamethode regionInstanceGroupManagers.patch:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: Die Region, in der sich die MIG befindet.
  • MIG_NAME: Name der MIG.

Weitere Informationen