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

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Dienste von Google Cloud und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:

    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. Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    2. Set a default region and zone.

    Terraform

    Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      Installieren Sie die Google Cloud CLI.

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

      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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Weitere Informationen finden Sie unter Set up authentication for a local development environment.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI.

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Weitere Informationen finden Sie in der Dokumentation zur Authentifizierung von Google Cloud unter Für die Verwendung von REST authentifizieren.

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