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 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

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

      5. 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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

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. Mit dem folgenden Befehl wird beispielsweise eine Instanzvorlage in der Region us-east1 mit Standardeigenschaften für Instanzen erstellt:

gcloud compute instance-templates create example-template --instance-template-region us-east1

Beim Erstellen der MIG können Sie entweder die ID oder den Namen einer Instanzvorlage angeben. Google empfiehlt, die ID anzugeben, da Instanzvorlagen-IDs im Gegensatz zu Namen nicht wiederverwendet werden können. Verwenden Sie den Befehl describe, um die eindeutige ID der von Ihnen erstellten Instanzvorlage aufzurufen:

gcloud compute instance-templates describe example-template --region us-east1 --format="value(id)"

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 projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --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 projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --zones us-east1-b,us-east1-c

Wenn Sie keine bestimmten Zonen verwenden müssen, können Sie alle Zonen angeben und eine ausgewogene Verteilungsform verwenden. Weitere Informationen finden Sie unter VMs auf Zonen verteilen.

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

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.

Beim Erstellen der MIG können Sie entweder die ID oder den Namen einer Instanzvorlage angeben. Google empfiehlt, die ID anzugeben, da Instanzvorlagen-IDs im Gegensatz zu Namen nicht wiederverwendet werden können. Wenn Sie die eindeutige ID der von Ihnen erstellten Instanzvorlage aufrufen möchten, verwenden Sie die Methode get auf der von Ihnen erstellten regionalen oder globalen 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": "INSTANCE_TEMPLATE_URL",
  "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_URL: 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
  • 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": "INSTANCE_TEMPLATE_URL",
  "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": "projects/my-project/regions/us-east1/instanceTemplates/1234567890",
  "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