Proaktive Umverteilung von VMs in einer regionalen MIG deaktivieren und wieder aktivieren


Nutzen Sie in einer regional verwalteten Instanzgruppe (Managed Instance Group, MIG) die proaktive Umverteilung von Instanzen, um eine gleichmäßige Anzahl von VM-Instanzen in den ausgewählten Zonen in der Region beizubehalten: Mit dieser Konfigurationsoption bleiben Anwendungen im Falle eines Ausfalls auf Zonenebene maximal verfügbar.

Die proaktive Umverteilung von Instanzen ist für regionale MIGs standardmäßig aktiviert. Wenn die proaktive Umverteilung von Instanzen deaktiviert ist, versucht die Gruppe nicht, VMs proaktiv über Zonen zu verteilen. Das Deaktivieren der proaktiven Umverteilung von Instanzen ist in folgenden Fällen nützlich:

  • Löschen oder Verwerfen von VMs aus der Gruppe, ohne andere laufende VMs zu beeinträchtigen. Sie können z. B. eine Batch-Worker-VM nach Abschluss eines Jobs löschen, ohne andere Worker zu beeinträchtigen.
  • VMs mit zustandsorientierten Arbeitslasten vor einer proaktiven Umverteilung vor unerwünschtem automatischem Löschen schützen.
  • Legen Sie für die Zielverteilungsform der MIG auf BALANCED oder ANY_SINGLE_ZONE fest.

Sie können die proaktive Umverteilung von Instanzen deaktivieren, wenn Sie eine regionale MIG erstellen. Sie können sie auch für eine vorhandene regionale MIG aktivieren oder deaktivieren.

Hinweise

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

    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

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Gruppe mit deaktivierter proaktiver Umverteilung von Instanzen erstellen

Sie können eine regionale MIG mit deaktivierter proaktiver Umverteilung von Instanzen mit der Google Cloud Console, der gcloud CLI, Terraform oder REST erstellen.

Console

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

    Zur Seite der Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen, um eine neue Instanzgruppe zu erstellen.
  3. Weisen Sie Ihrer Instanzgruppe einen Namen und optional eine Beschreibung zu.
  4. Wählen Sie eine Instanzvorlage für die Instanzgruppe aus oder erstellen Sie eine neue Vorlage.
  5. Geben Sie die Anzahl der VMs für diese Gruppe an. Denken Sie bei hochverfügbaren Arbeitslasten daran, genügend VMs bereitzustellen, um Ihre Anwendung bei einem Zonenausfall zu unterstützen.
  6. Wählen Sie unter Standort die Option Mehrere Zonen aus.
  7. Wählen Sie eine Region und die zu verwendenden Zonen aus.
  8. Wenn Sie die proaktive Umverteilung von Instanzen deaktivieren möchten, entfernen Sie unter Umverteilung von Instanzen das Häkchen bei Umverteilung von Instanzen zulassen.
  9. Fahren Sie nun mit dem Erstellen der MIG fort.

gcloud

Wenn Sie eine neue regionale MIG ohne proaktive Umverteilung von Instanzen erstellen möchten, verwenden Sie den Befehl gcloud compute instance-groups managed create. Das Flag --instance-redistribution-type muss dabei auf NONE gesetzt werden.

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

Dabei gilt:

  • INSTANCE_GROUP_NAME: Name der MIG.
  • INSTANCE_TEMPLATE_NAME: Name der Instanzvorlage, die für die Gruppe verwendet werden soll.
  • TARGET_SIZE: angestrebte Größe der Gruppe.
  • ZONES: Liste der Zonen in einer einzelnen Region, in der Sie VMs bereitstellen möchten.

Beispiel:

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

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 zum Erstellen einer regionalen MIG die Ressource google_compute_region_instance_group_manager.

Wenn Sie die proaktive Umverteilung von Instanzen in einer regionalen MIG deaktivieren möchten, fügen Sie den Block update_policy ein und legen Sie das Feld instance_redistribution_type auf NONE fest.

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

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

REST

Wenn Sie eine regionale MIG ohne Autoscaling und ohne proaktive Umverteilung von Instanzen erstellen möchten, stellen Sie eine POST-Anfrage an die Methode regionInstanceGroupManagers.insert. Fügen Sie dabei im Anfragetext das Attribut updatePolicy ein und legen Sie das Feld instanceRedistributionType auf NONE fest.

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

Dabei gilt:

  • PROJECT_ID: Projekt-ID für diese Anfrage.
  • REGION: Region für die Instanzgruppe.
  • INSTANCE_GROUP_NAME: Name der MIG.
  • INSTANCE_TEMPLATE_NAME: Name der Instanzvorlage, die für die Gruppe verwendet werden soll.
  • TARGET_SIZE: angestrebte Größe der Gruppe.
  • ZONE: Name einer Zone in der einzelnen Region, in der Sie VMs bereitstellen möchten

Proaktive Umverteilung von Instanzen deaktivieren

Mit einer der folgenden Methoden können Sie die proaktive Verteilung von Instanzen deaktivieren oder wieder aktivieren: Google Cloud Console, gcloud CLI oder REST.

Console

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

    Zur Seite Instanzgruppen

  2. Klicken Sie in der Spalte Name der Liste auf den Namen der Instanzgruppe, die Sie ändern möchten.
  3. Klicken Sie auf Bearbeiten, um die verwaltete Instanzgruppe zu bearbeiten.
  4. Deaktivieren Sie unter Umverteilung von Instanzen das Kästchen Umverteilung von Instanzen zulassen.
  5. Klicken Sie auf Speichern.

gcloud

Wenn Sie die proaktive Umverteilung von Instanzen deaktivieren möchten, verwenden Sie den Befehl compute instance-groups managed update und legen Sie das Flag --instance-redistribution-type wie unten beschrieben auf NONE fest:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --instance-redistribution-type NONE \
    --region REGION

Ersetzen Sie Folgendes:

  • INSTANCE_GROUP_NAME: Name der MIG.
  • REGION: Region der Instanzgruppe.

REST

Wenn Sie die proaktive Umverteilung von Instanzen deaktivieren möchten, verwenden Sie die regionInstanceGroupManagers.patch-Methode und legen Sie das Feld instanceRedistributionType wie unten beschrieben auf NONE fest:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID für diese Anfrage.
  • REGION: Region für die Instanzgruppe.
  • INSTANCE_GROUP_NAME: Name der MIG.

Proaktive Umverteilung von Instanzen aktivieren

Wenn Sie die proaktive Umverteilung von Instanzen aktivieren möchten, können Sie einen ähnlichen Befehl wie zum Deaktivieren der proaktiven Umverteilung von Instanzen verwenden. Setzen Sie den Typ für die Umverteilung von Instanzen hierbei aber auf PROACTIVE.

Wenn Sie einige verwaltete Instanzen manuell gelöscht oder verworfen haben und die verbleibenden VMs in der Region jetzt ungleichmäßig verteilt sind, müssen Sie die Gruppe manuell neu ausgleichen, bevor Sie die proaktive Umverteilung von Instanzen wieder aktivieren können. Die Anzahl der VMs zwischen zwei Zonen sollte sich um nicht mehr als eine VM unterscheiden.

In einer regionalen MIG ist es nicht möglich, die proaktive Umverteilung von Instanzen zu aktivieren, wenn VMs ungleichmäßig auf Zonen verteilt sind, d. h., wenn sich die Anzahl der VMs in zwei Zonen um mindestens zwei VMs unterscheidet. Dies soll ein unbeabsichtigtes automatisches Löschen von VMs aus Zonen mit mehr VMs verhindern, das ausgelöst werden würde, um eine gleichmäßige Verteilung zu erreichen.

Nächste Schritte