MIG mit VMs in mehreren Zonen in einer Region erstellen


In diesem Dokument wird beschrieben, wie Sie eine verwaltete Instanzgruppe (MIG) erstellen, deren VMs auf mehrere Zonen in einer Region verteilt sind. Durch das Verteilen der Anwendungslast auf mehrere Zonen wird Ihre Arbeitslast vor Zonenausfällen geschützt. Wenn ein Zonenausfall auftritt, ist Ihre Anwendung weiterhin über Instanzen verfügbar, die in den verbleibenden verfügbaren Zonen in derselben Region ausgeführt werden.

Diese Art von MIG wird auch als regionale MIG bezeichnet. Weitere Informationen finden Sie unter Regionale MIGs.

Weitere Informationen zu anderen grundlegenden Szenarien zum Erstellen einer MIG

Vorbereitung

  • Erstellen Sie eine Instanzvorlage. Dies ist zum Erstellen einer verwalteten Instanzgruppe erforderlich.
  • 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 wie folgt bei 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. 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.

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

      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.

Beschränkungen

Eine vollständige Liste der MIG-Einschränkungen, die je nach verwendeter Konfiguration variieren, finden Sie unter MIG-Einschränkungen.

MIG mit VMs in mehreren Zonen in einer Region erstellen

Verwenden Sie die Google Cloud Console, die gcloud CLI, Terraform oder REST.

Console

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

    Zu den Instanzgruppen

    Die verbleibenden Schritte werden in der Google Cloud Console angezeigt.

  2. Klicken Sie auf Instanzgruppe erstellen, um eine neue Instanzgruppe zu erstellen.
  3. Wählen Sie eine der Optionen für neue verwaltete Instanzgruppen aus:
  4. Weisen Sie der Instanzgruppe einen Namen und optional eine Beschreibung zu.
  5. Wählen Sie eine Instanzvorlage für die Instanzgruppe aus oder erstellen Sie eine neue Vorlage.
  6. Geben Sie unter Anzahl der Instanzen oder Autoscaling die Anzahl der Instanzen für diese Gruppe an. Denken Sie daran, genügend VMs bereitzustellen, um den Anwendungsbetrieb bei einem Zonenfehler aufrechtzuerhalten.
  7. Wählen Sie für Standort die Option Mehrere Zonen aus.
  8. Wählen Sie eine Region und die zu verwendenden Zonen aus. Wenn Sie eine regionale Instanzvorlage ausgewählt haben, wird die Region automatisch anhand der Region der Vorlage ausgewählt.
  9. Wählen Sie unter Form der Zielverteilung die Option Gleichmäßig aus. Informationen zum Auswählen einer anderen Form finden Sie unter Zielverteilungsform für VMs in einer regionalen MIG festlegen.
  10. Wenn Sie proaktive Umverteilung von Instanzen deaktivieren möchten, entfernen Sie unter Umverteilung von Instanzen das Häkchen bei Umverteilung von Instanzen zulassen.
  11. Fahren Sie nun mit dem Erstellen der MIG fort.
  12. Klicken Sie zum Erstellen der MIG auf Erstellen.

gcloud

Für alle MIGs muss eine Instanzvorlage vorhanden sein. Wenn Sie keine haben, erstellen Sie eine Instanzvorlage. Der folgende Befehl erstellt beispielsweise eine einfache Instanzvorlage mit Standardattributen:

gcloud compute instance-templates create example-template

Verwenden Sie im nächsten Schritt den Befehl instance-groups managed create mit dem Flag --region. Mit dem folgenden Befehl wird beispielsweise eine regionale MIG in drei Zonen der Region us-east1 erstellt:

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

Wenn Sie bestimmte Zonen auswählen möchten, die von der Gruppe verwendet werden sollen, geben Sie das Flag --zones an:

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

Informationen zum Deaktivieren der proaktiven Umverteilung von Instanzen finden Sie unter Proaktive Umverteilung von Instanzen deaktivieren.

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

Zum Erstellen einer regionalen MIG können Sie die Ressource google_compute_region_instance_group_manager verwenden.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  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

Für alle MIGs muss eine Instanzvorlage vorhanden sein. Wenn Sie keine haben, erstellen Sie eine Instanzvorlage.

Erstellen Sie im nächsten Schritt eine POST-Anfrage an die Methode regionInstanceGroupManagers.insert. Geben Sie im Anfragetext den Gruppennamen, die Gruppengröße und die URL zur Instanzvorlage an. Geben Sie optional andere Felder an, z. B. den Basisnamen für Instanzen in der Gruppe.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: Projekt-ID für diese Anfrage.
  • REGION: Region für die Gruppe.
  • BASE_INSTANCE_NAME: (optional) Instanzname für jede VM-Instanz, die als Teil der Gruppe erstellt wird. Durch den Basisinstanznamen example-instance würden z. B. Instanzen mit Namen wie example-instance-[RANDOM_STRING] erstellt werden, wobei [RANDOM_STRING] vom Server generiert wird.
  • INSTANCE_TEMPLATE_NAME: Instanzvorlage, die verwendet werden soll. Bei einer regionalen Instanzvorlage müssen Sie die URL der Vorlage vollständig oder teilweise angeben. Ein Beispiel für eine vollständige URL ist https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template und für eine teilweise URL projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • INSTANCE_GROUP_NAME: Name der MIG.
  • TARGET_SIZE: angestrebte Anzahl von VMs in der Gruppe.

Wenn Sie bestimmte Zonen auswählen möchten oder VMs in einer Region mit weniger oder mehr als drei Zonen erstellen, fügen Sie der Anfrage das Attribut distributionPolicy hinzu und geben Sie eine Liste mit Zonen an. Ersetzen Sie ZONE durch den Namen einer Zone, in der VMs erstellt werden sollen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

Mit der folgenden Anfrage wird beispielsweise eine regionale MIG namens example-rmig erstellt, wobei zehn verwaltete Instanzen auf die Zonen us-east1-b und us-east1-c verteilt werden:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

Je nachdem, wie Sie eine MIG konfigurieren und darauf reagieren, können sich verschiedene Richtlinien und Aktionen auf die Instanzen in der Gruppe auswirken. Informationen darüber, welche verwalteten Instanzen aktiv sind, finden Sie unter Status von verwalteten Instanzen prüfen.

Wenn in keiner Zone genügend Kapazität zur Unterstützung der VMs in der Gruppe vorhanden ist, erstellt Compute Engine so viele VMs wie möglich und versucht, die restlichen VMs zu erstellen, wenn zusätzliche Kapazität verfügbar wird.

Wenn Sie in Ihrer Anfrage nicht explizit einzelne Zonen angeben, wählt Compute Engine automatisch drei Zonen aus, in denen VMs erstellt werden sollen. Wenn Sie VMs in mehr oder weniger als drei Zonen erstellen müssen oder Sie die zu verwendenden Zonen auswählen möchten, können Sie eine Liste der Zonen in Ihrer Anfrage bereitstellen. Weitere Informationen finden Sie unter Zonenauswahl.

Verteilung von VMs auf Zonen

Standardmäßig verteilt eine regionale MIG VMs gleichmäßig auf ausgewählte Zonen. Beachten Sie beim Erstellen einer regionalen MIG, dass bestimmte Ressourcen zonal sind, z. B. GPUs und vorhandene nichtflüchtige Speicher. Wenn die Instanzvorlage Ihrer MIG zonale Ressourcen angibt, müssen alle Ressourcen in allen ausgewählten Zonen vorhanden sein, damit sie an die von der regionalen MIG erstellten VMs angehängt werden können. Wenn Sie mit der Gruppe prüfen möchten, ob zonale Ressourcen vorhanden sind, können Sie die Zielverteilungsform der MIG so festlegen, dass Instanzen nur in Zonen erstellt werden, die diese Ressourcen enthalten.

Weitere Informationen finden Sie in folgenden Dokumenten:

Proaktive Umverteilung von Instanzen

Die proaktive Umverteilung von Instanzen ist standardmäßig aktiviert. Wenn Sie die Anzahl der VMs in jeder Zone manuell verwalten oder die Zielverteilungsform der MIG auf BALANCED oder ANY_SINGLE_ZONE festlegen müssen, ist die proaktive Umverteilung von Instanzen zu deaktivieren.

Weitere Informationen finden Sie in folgenden Dokumenten:

Nächste Schritte