Richtlinien für gestreute Platzierung erstellen und auf VMs anwenden


In diesem Dokument wird beschrieben, wie Sie die Zuverlässigkeit Ihrer VM-Instanzen (virtuellen Maschinen) verbessern, indem Sie Richtlinien für verteilte Platzierung erstellen und anwenden. Weitere Informationen zu Platzierungsrichtlinien, einschließlich ihrer Einschränkungen und Preise, finden Sie unter Platzierungsrichtlinien – Übersicht.

In einer Richtlinie für verteilte Platzierungen ist angegeben, dass Ihre VMs auf verschiedene Verfügbarkeitsdomains verteilt werden sollen. Diese Verteilung hilft, standortspezifische Störungen wie Hardwarefehler zu vermeiden und ist nützlich, wenn große, verteilte und replizierte Arbeitslasten wie das Hadoop Distributed File System (HDFS), Cassandra oder Kafka ausgeführt werden.

Hinweis

  • 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:

    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.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Erstellen und Anwenden einer Richtlinie für verteilte Platzierung auf VMs benötigen, bitten Sie Ihren Administrator, Ihnen die Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM-Rolle für Ihr Projekt zuzuweisen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen und Anwenden einer Richtlinie für gestreute Platzierung auf VMs erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Richtlinie für verteilte Platzierung zu erstellen und auf VMs anzuwenden:

  • Zur Erstellung von Platzierungsrichtlinien: compute.resourcePolicies.create für das Projekt
  • Zur Anwendung einer Platzierungsrichtlinie auf vorhandene VMs an: compute.instances.addResourcePolicies für das Projekt
  • Zum Erstellen von VMs:
    • compute.instances.create für das Projekt
    • Zur Erstellung der VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
    • Zur Erstellung der VM mithilfe eines Snapshots: compute.snapshots.useReadOnly für den Snapshot
    • Zur Erstellung der VM mithilfe einer Instanzvorlage: compute.instanceTemplates.useReadOnly für die Instanzvorlage
    • Um der VM ein Legacy-Netzwerk zuzuweisen: compute.networks.use für das Projekt
    • Zum Festlegen einer statische IP-Adresse für die VM: compute.addresses.use für das Projekt
    • Zur Zuweisung einer externen IP-Adresse zur VM bei Verwendung eines Legacy-Netzwerks: compute.networks.useExternalIp für das Projekt
    • Um ein Subnetz für die VM anzugeben: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
    • Um der VM eine externe IP-Adresse zuzuweisen, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
    • Um die Metadaten der VM-Instanz für die VM festzulegen: compute.instances.setMetadata für das Projekt
    • Um Tags für die VM festzulegen: compute.instances.setTags für die VM
    • Um Labels für die VM festzulegen: compute.instances.setLabels für die VM
    • Um ein Dienstkonto festzulegen, das die VM verwenden soll: compute.instances.setServiceAccount für die VM
    • Um ein neues Laufwerk für die VM zu erstellen: compute.disks.create für das Projekt
    • Um ein vorhandenes Laufwerk im Lese- oder Lese‑/Schreibmodus anzuhängen: compute.disks.use für das Laufwerk
    • Um ein vorhandenes Laufwerk im Lesemodus anzuhängen: compute.disks.useReadOnly für das Laufwerk
  • Um eine Instanzvorlage zu erstellen: compute.instanceTemplates.create für das Projekt
  • Um eine verwaltete Instanzgruppe (MIG) zu erstellen: compute.instanceGroupManagers.create für das Projekt

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Richtlinie für die Streuungsplatzierungen erstellen

Sofern Sie die Anwendung der Richtlinie für verteilte Platzierung auf Ihren VMs nicht testen möchten, empfiehlt Google Cloud , Richtlinien für verteilte Platzierung mit zwei oder mehr Verfügbarkeitsdomains zu erstellen. Dadurch wird das Risiko minimiert, dass alle VMs von einem einzelnen Hardwarefehler beeinträchtigt werden. Weitere Informationen finden Sie unter Richtlinien für gestreute Placements.

Wählen Sie eine der folgenden Optionen aus, um eine Richtlinie für verteilte Platzierung zu erstellen:

gcloud

Verwenden Sie zum Erstellen einer Richtlinie für gestreute platzierungen den Befehl gcloud compute resource-policies create group-placement mit dem Flag --availability-domain-count.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count=DOMAIN_COUNT \
    --region=REGION

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name der Richtlinie für gestreute Platzierung.

  • DOMAIN_COUNT: die eindeutige Anzahl der Verfügbarkeitsdomains, in denen Sie VMs platzieren möchten. Der Wert muss zwischen 1 und 8 liegen.

  • REGION: die Region, in der die Platzierungsrichtlinie erstellt werden soll.

REST

Senden Sie zum Erstellen einer Richtlinie für gestreute Platzierung eine POST-Anfrage an die Methode resourcePolicies.insert. Geben Sie im Anfragetext das Feld availabilityDomainCount an.

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

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem die Platzierungsrichtlinie erstellt werden soll.

  • REGION: die Region, in der die Platzierungsrichtlinie erstellt werden soll.

  • POLICY_NAME: der Name der Richtlinie für gestreute Platzierung.

  • DOMAIN_COUNT: die eindeutige Anzahl der Verfügbarkeitsdomains, in denen Sie VMs platzieren möchten. Der Wert muss zwischen 1 und 8 liegen.

Richtlinie für gestreute Platzierung anwenden

Sie können eine Richtlinie für gestreute Platzierungen auf eine vorhandene VM oder verwaltete Instanzgruppe anwenden, oder wenn Sie VMs, Instanzvorlagen oder verwaltete Instanzgruppen erstellen.

Wählen Sie eine der folgenden Methoden aus, um eine Richtlinie für verteilte Platzierung auf eine Compute Engine-Ressource anzuwenden:

Nachdem Sie eine Richtlinie für verteilte Platzierungen auf eine VM angewendet haben, können Sie die Verfügbarkeitsdomäne prüfen, in der sich die VM befindet. Prüfen Sie dazu die Details der VM und sehen Sie sich den Wert im Feld availabilityDomain an.

Richtlinie auf eine vorhandene VM anwenden

Bevor Sie eine Richtlinie für verteilte Platzierungen auf eine vorhandene VM anwenden, sollten Sie Folgendes beachten:

  • Wenn Ihre Richtlinie für verteilte Platzierungen mehrere Verfügbarkeitsdomains angibt, können Sie die Richtlinie auf eine VM anwenden, ohne die VM zu beenden. Die VM muss jedoch möglicherweise in eine andere Verfügbarkeitsdomain verschoben werden. Während dieses Vorgangs wird die VM von Compute Engine gemäß der Hostwartungsrichtlinie beendet oder live migriert.

  • Die VM und die Richtlinie für verteilte Platzierung müssen sich in derselben Region befinden. Beispiel: Wenn sich die Platzierungsrichtlinie in der Region us-central1 befindet, muss sich die VM in einer Zone in us-central1 befinden. Wenn Sie eine VM in eine andere Region migrieren müssen, finden Sie weitere Informationen in VM zwischen Zonen oder Regionen verschieben.

Wenn Sie die Verfügbarkeitsdomain angeben möchten, in der Ihre VM platziert werden soll, wenden Sie die Platzierungsrichtlinie auf die VM an, indem Sie ihre Eigenschaften aktualisieren. Achten Sie beim Aktualisieren der VM-Attribute darauf, die Felder resourcePolicies und scheduling.availabilityDomain anzugeben.

Wählen Sie eine der folgenden Optionen aus, um eine Richtlinie für verteilte Platzierungen auf eine vorhandene VM anzuwenden:

gcloud

Verwenden Sie den Befehl gcloud compute instances add-resource-policies, um eine Richtlinie für gestreute Platzierung auf eine vorhandene VM anzuwenden.

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • VM_NAME: Der Name einer vorhandenen VM.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

  • ZONE ist die Zone, in der sich die VM befindet.

REST

Senden Sie eine POST-Anfrage an die Methode instances.addResourcePolicies, um eine Richtlinie für gestreute Platzierung auf eine vorhandene VM anzuwenden.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich die Richtlinie für gestreute Platzierung und die VM befinden.

  • ZONE ist die Zone, in der sich die VM befindet.

  • VM_NAME: Der Name einer vorhandenen VM.

  • REGION: die Region, in der sich die Richtlinie für verteilte Platzierung befindet.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

Richtlinie beim Erstellen einer VM anwenden

Sie können eine VM, die eine Richtlinie für verteilte Platzierung angibt, nur in der Region erstellen, in der sich die Platzierungsrichtlinie befindet.

Wählen Sie eine der folgenden Optionen aus, um eine VM zu erstellen, die eine Richtlinie für verteilte Platzierungen angibt:

gcloud

Verwenden Sie zum Erstellen einer VM mit einer Richtlinie für verteilte Platzierung den Befehl gcloud compute instances create mit dem Flag --resource-policies.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • VM_NAME: Name der zu erstellenden VM.

  • MACHINE_TYPE: Maschinentyp für die VM.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

  • ZONE: die Zone, in der die VM-Instanz erstellt werden soll.

Optional können Sie das Flag --availability-domain angeben, um die Verfügbarkeitsdomain anzugeben, in der die VM erstellt werden soll.

gcloud compute instances create VM_NAME \
    --availability-domain=DOMAIN_NUMBER \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ersetzen Sie DOMAIN_NUMBER durch die Nummer der Verfügbarkeitsdomäne, in der Sie Ihre VM platzieren möchten. Der Wert muss zwischen 1 und der Anzahl der in der Richtlinie für die verteilte Platzierung angegebenen Domains liegen. Die Anzahl der Domains in einer Richtlinie für gestreute Placements finden Sie in den Details der Platzierungsrichtlinie.

REST

Senden Sie zum Erstellen einer VM, die eine Richtlinie für gestreute Platzierung angibt, eine POST-Anfrage an die Methode instances.insert. Geben Sie im Anfragetext das Feld resourcePolicies an.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich die Richtlinie für gestreute Platzierung befindet.

  • ZONE: die Zone, in der die VM erstellt werden soll und in der sich der Maschinentyp befindet. Sie können nur eine Zone innerhalb der Region der Richtlinie für verteilte Platzierung angeben.

  • VM_NAME: der Name der zu erstellenden VM.

  • MACHINE_TYPE: Maschinentyp für die VM.

  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

  • IMAGE: Wählen Sie eine der folgenden Optionen aus:

    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-12 angeben, wird die aktuelle Version in der Debian 12-Image-Familie verwendet. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

  • REGION: die Region, in der sich die Richtlinie für verteilte Platzierung befindet.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

Optional können Sie die Verfügbarkeitsdomain, in der die VM erstellt werden soll, angeben, indem Sie das Feld availabilityDomain in den Anfragetext einfügen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "availabilityDomain": DOMAIN_NUMBER
  }
}

Ersetzen Sie DOMAIN_NUMBER durch die Nummer der Verfügbarkeitsdomäne, in der Sie Ihre VM platzieren möchten. Der Wert muss zwischen 1 und der Anzahl der in der Richtlinie für die verteilte Platzierung angegebenen Domains liegen. Die Anzahl der Domains in einer Richtlinie für gestreute Placements finden Sie in den Details der Platzierungsrichtlinie.

Weitere Informationen zu den Konfigurationsoptionen zum Erstellen einer VM finden Sie unter VM-Instanz erstellen und starten

Richtlinie beim Erstellen von VMs im Bulk anwenden

Bevor Sie VMs im Bulk erstellen, die eine Richtlinie für gestreute Platzierungen angeben, achten Sie auf Folgendes:

  • Sie können VMs im Bulk mit Richtlinien für verteilte Platzierungen nur in der Region erstellen, in der sich die Platzierungsrichtlinie befindet.

  • Wenn Sie VMs im Bulk mit einer Richtlinie für verteilte Platzierung erstellen, können Sie optional die Verfügbarkeitsdomain angeben, in der Ihre VMs erstellt werden sollen. Erstellen Sie nicht alle VMs in einer einzigen Domain. Andernfalls können Sie das Risiko nicht minimieren, dass ein einzelner Hardwarefehler sich auf alle Ihre VMs auswirkt.

Wählen Sie eine der folgenden Optionen aus, um VMs im Bulk zu erstellen, die eine Richtlinie für verteilte Platzierung angeben:

gcloud

Wenn Sie VMs im Bulk erstellen möchten, die eine Richtlinie für verteilte Platzierung angeben, verwenden Sie den Befehl gcloud compute instances bulk create mit dem Flag --resource-policies.

Wenn Sie beispielsweise VMs im Bulk in einer einzelnen Zone erstellen und ein Namensmuster für die VMs angeben möchten, führen Sie den folgenden Befehl aus:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • COUNT ist die Anzahl der zu erstellenden VMs.

  • MACHINE_TYPE ist der Maschinentyp für die VMs.

  • NAME_PATTERN ist das Namensmuster für die VMs. Verwenden Sie eine Abfolge von Hash-Zeichen (#), um eine Zahlenfolge in einem VM-Namen zu ersetzen. Wenn Sie z. B. vm-# für das Namensmuster verwenden, werden VMs mit den Namen vm-1, vm-2 usw. bis zu der durch COUNT angegebenen Anzahl von VMs erzeugt.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

  • ZONE: Zone, in der die VMs im Bulk erstellt werden sollen.

Optional können Sie mit dem Flag --availability-domain die Verfügbarkeitsdomain angeben, in der die VMs im Bulk-Verfahren erstellt werden sollen.

gcloud compute instances bulk create \
    --availability-domain=DOMAIN_NUMBER \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ersetzen Sie DOMAIN_NUMBER durch die Nummer der Verfügbarkeitsdomäne, in der Sie Ihre VM platzieren möchten. Der Wert muss zwischen 1 und der Anzahl der in der Richtlinie für die verteilte Platzierung angegebenen Domains liegen. Die Anzahl der Domains in einer Richtlinie für gestreute Placements finden Sie in den Details der Platzierungsrichtlinie.

REST

Wenn Sie VMs im Bulk erstellen möchten, die eine Richtlinie für gestreute Platzierung angeben, erstellen Sie einen POST an die Methode instances.bulkInsert. Geben Sie im Anfragetext das Feld resourcePolicies an.

Wenn Sie beispielsweise VMs im Bulk in einer einzelnen Zone erstellen und ein Namensmuster für die VMs angeben möchten, stellen Sie eine POST-Anfrage wie hier beschrieben:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich die Richtlinie für gestreute Platzierung befindet.

  • ZONE: Zone, in der die VMs im Bulk erstellt werden sollen.

  • COUNT ist die Anzahl der zu erstellenden VMs.

  • NAME_PATTERN ist das Namensmuster für die VMs. Verwenden Sie eine Abfolge von Hash-Zeichen (#), um eine Zahlenfolge in einem VM-Namen zu ersetzen. Wenn Sie z. B. vm-# für das Namensmuster verwenden, werden VMs mit den Namen vm-1, vm-2 usw. bis zu der durch COUNT angegebenen Anzahl von VMs erzeugt.

  • MACHINE_TYPE ist der Maschinentyp für die VMs.

  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

  • IMAGE: Wählen Sie eine der folgenden Optionen aus:

    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-12 angeben, wird die aktuelle Version in der Debian 12-Image-Familie verwendet. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

Optional können Sie die Verfügbarkeitsdomain, in der die VMs im Bulk-Verfahren erstellt werden sollen, angeben, indem Sie das Feld availabilityDomain in den Anfragetext einfügen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Ersetzen Sie DOMAIN_NUMBER durch die Nummer der Verfügbarkeitsdomäne, in der Sie Ihre VM platzieren möchten. Der Wert muss zwischen 1 und der Anzahl der in der Richtlinie für die verteilte Platzierung angegebenen Domains liegen. Die Anzahl der Domains in einer Richtlinie für gestreute Placements finden Sie in den Details der Platzierungsrichtlinie.

Weitere Informationen zu den Konfigurationsoptionen zum Erstellen von VMs im Bulk finden Sie unter VMs im Bulk erstellen

Richtlinie beim Erstellen einer Instanzvorlage anwenden

Bevor Sie eine Instanzvorlage erstellen, die eine Richtlinie für gestreute Platzierungen angibt, müssen folgende Voraussetzungen erfüllt sein:

  • Wenn Sie eine regionale Instanzvorlage erstellen möchten, müssen Sie die Vorlage in der Region erstellen, in der sich auch die Richtlinie für verteilte Platzierungen befindet. Andernfalls schlägt das Erstellen der Instanzvorlage fehl.

  • Wenn Sie eine Instanzvorlage erstellen, können Sie optional die Verfügbarkeitsdomain angeben, in der VMs erstellt werden sollen. Erstellen Sie nicht alle VMs in einer einzigen Domain. Andernfalls können Sie das Risiko nicht minimieren, dass ein einzelner Hardwarefehler sich auf alle Ihre VMs auswirkt.

Nachdem Sie eine Instanzvorlage erstellt haben, die eine Richtlinie für gestreute Platzierung angibt, können Sie mit der Vorlage Folgendes tun:

Wählen Sie eine der folgenden Optionen aus, um eine Instanzvorlage zu erstellen, die eine Richtlinie für verteilte Platzierung angibt:

gcloud

Verwenden Sie zum Erstellen einer Instanzvorlage, die eine Richtlinie für verteilte Platzierungen angibt, den Befehl gcloud compute instance-templates create mit dem Flag --resource-policies.

Beispiel: Führen Sie folgenden Befehl aus, um eine globale Instanzvorlage zu erstellen, die eine Richtlinie für verteilte Platzierungen angibt:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Ersetzen Sie Folgendes:

  • INSTANCE_TEMPLATE_NAME: Name der Instanzvorlage.

  • MACHINE_TYPE: Maschinentyp für die mithilfe der Instanzvorlage erstellten VMs.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

Optional können Sie das Flag --availability-domain angeben, um die Verfügbarkeitsdomain anzugeben, in der die VMs erstellt werden sollen.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --availability-domain=DOMAIN_NUMBER  \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Ersetzen Sie DOMAIN_NUMBER durch die Nummer der Verfügbarkeitsdomäne, in der Sie Ihre VMs erstellen möchten. Der Wert muss zwischen 1 und der in der Placement-Richtlinie angegebenen Anzahl von Domains liegen. Die Anzahl der Domains in einer Richtlinie für gestreute Placements finden Sie in den Details der Platzierungsrichtlinie.

REST

Wenn Sie eine Instanzvorlage mit einer Richtlinie für verteilte Platzierungen erstellen möchten, senden Sie eine POST-Anfrage an eine der folgenden Methoden:

Geben Sie im Anfragetext das Feld resourcePolicies an.

Wenn Sie beispielsweise eine globale Instanzvorlage erstellen möchten, die eine Richtlinie für verteilte Platzierungen angibt, stellen Sie eine POST-Anfrage wie hier beschrieben:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich die Richtlinie für gestreute Platzierung befindet.

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.

  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

  • IMAGE: Wählen Sie eine der folgenden Optionen aus:

    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-12 angeben, wird die aktuelle Version in der Debian 12-Image-Familie verwendet. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

  • MACHINE_TYPE: Maschinentyp für die mithilfe der Instanzvorlage erstellten VMs.

  • POLICY_NAME: Name einer vorhandenen Richtlinie für gestreute platzierungen.

Optional können Sie die Verfügbarkeitsdomain, in der die VMs erstellt werden sollen, angeben, indem Sie das Feld availabilityDomain in den Anfragetext einfügen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Ersetzen Sie DOMAIN_NUMBER durch die Nummer der Verfügbarkeitsdomäne, in der Sie Ihre VMs erstellen möchten. Der Wert muss zwischen 1 und der in der Placement-Richtlinie angegebenen Anzahl von Domains liegen. Die Anzahl der Domains in einer Richtlinie für gestreute Placements finden Sie in den Details der Platzierungsrichtlinie.

Weitere Informationen zu den Konfigurationsoptionen zum Erstellen einer Instanzvorlage finden Sie unter Instanzvorlagen erstellen.

Richtlinie auf VMs in einer verwalteten Instanzgruppe anwenden

Nachdem Sie eine Instanzvorlage erstellt haben, die eine richtlinie für verteilte Platzierung angibt, können Sie mit der Vorlage Folgendes tun:

Richtlinie beim Erstellen einer verwalteten Instanzgruppe anwenden

Sie können VMs, die eine Richtlinie für verteilte Platzierung angeben, nur erstellen, wenn sich die VMs in derselben Region wie die Platzierungsrichtlinie befinden.

Wählen Sie eine der folgenden Optionen aus, um eine verwaltete Instanzgruppe mit einer Instanzvorlage zu erstellen, die eine Richtlinie für die verteilte Platzierung angibt:

gcloud

Verwenden Sie den Befehl gcloud compute instance-groups managed create, um eine verwaltete Instanzgruppe mit einer Instanzvorlage zu erstellen, die eine Richtlinie für die verteilte Platzierung angibt.

Beispiel: Führen Sie folgenden Befehl aus, um eine zonale verwaltete Instanzgruppe mit einer globalen Instanzvorlage zu erstellen, die eine Richtlinie für verteilte Platzierungen angibt:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • INSTANCE_GROUP_NAME: Name der verwalteten Instanzgruppe, die erstellt werden soll.

  • SIZE: die Größe der MIG.

  • INSTANCE_TEMPLATE_NAME: Name einer vorhandenen globalen Instanzvorlage, die eine Richtlinie für verteilte Platzierung angibt.

  • ZONE: die Zone, in der die verwaltete Instanzgruppe erstellt werden soll. Sie muss sich in der Region befinden, in der sich die Richtlinie für gestreute Platzierung befindet.

REST

Wenn Sie eine verwaltete Instanzgruppe mit einer Instanzvorlage erstellen möchten, die eine Richtlinie für verteilte Platzierungen angibt, senden Sie eine POST-Anfrage an eine der folgenden Methoden:

Wenn Sie beispielsweise eine zonale verwaltete Instanzgruppe mit einer globalen Instanzvorlage erstellen möchten, die eine Richtlinie für verteilte Platzierungen angibt, stellen Sie eine POST-Anfrage:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich die Richtlinie für gestreute Platzierung und die Instanzvorlage befinden, die die Platzierungsrichtlinie angibt.

  • ZONE: die Zone, in der die verwaltete Instanzgruppe erstellt werden soll. Sie muss sich in der Region befinden, in der sich die Richtlinie für gestreute Platzierung befindet.

  • INSTANCE_GROUP_NAME: Name der MIG, die erstellt werden soll.

  • SIZE: die Größe der MIG.

  • INSTANCE_TEMPLATE_NAME: Name einer vorhandenen globalen Instanzvorlage, die eine Richtlinie für verteilte Platzierung angibt.

Weitere Informationen zu den Konfigurationsoptionen zum Erstellen von verwaltete Instanzgruppen finden Sie unter Grundlegende Szenarien zum Erstellen verwalteter Instanzgruppen.

Richtlinie auf eine vorhandene verwaltete Instanzgruppe anwenden

Sie können eine Richtlinie für gestreute Platzierung nur auf eine vorhandene verwaltete Instanzgruppe (MIG, Managed Instance Group) anwenden, wenn sich die verwaltete Instanzgruppe in derselben Region oder (bei zonalen verwalteten Instanzgruppen) in einer Zone innerhalb derselben Region wie die Platzierungsrichtlinie befindet.

Wählen Sie eine der folgenden Optionen aus, um eine MIG so zu aktualisieren, dass sie eine Instanzvorlage verwendet, die eine Richtlinie für verteilte Platzierung angibt:

gcloud

Verwenden Sie den Befehl gcloud compute instance-groups managed rolling-action start-update, um eine MIG so zu aktualisieren, dass sie eine Instanzvorlage nutzt, die eine Richtlinie für gestreute Platzierung angibt.

Wenn Sie beispielsweise eine zonale verwaltete Instanzgruppe so aktualisieren möchten, dass sie eine Instanzvorlage verwendet, die eine Richtlinie für gestreute Platzierung angibt, und die vorhandenen VMs aus der verwalteten Instanzgruppe durch neue VMs ersetzen möchten, die die Attribute der Vorlage angeben, führen Sie den folgenden Befehl aus:

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • INSTANCE_GROUP_NAME: der Name einer vorhandenen verwalteten Instanzgruppe.

  • INSTANCE_TEMPLATE_NAME: Name einer vorhandenen globalen Instanzvorlage, die eine Richtlinie für verteilte Platzierung angibt.

  • ZONE: Die Zone, in der sich die MIG befindet. Sie können die Richtlinie für gestreute Platzierung nur auf eine verwaltete Instanzgruppe anwenden, die sich in derselben Region wie die Platzierungsrichtlinie befindet.

REST

Wenn Sie eine verwaltete Instanzgruppe so aktualisieren möchten, dass eine Instanzvorlage verwendet wird, die eine Richtlinie für gestreute Platzierung angibt, und Sie die Attribute der Vorlage und der Platzierungsrichtlinie automatisch auf vorhandene VMs in der verwalteten Instanzgruppe anwenden möchten, senden Sie eine PATCH-Anfrage an die folgende Methode.

Wenn Sie beispielsweise eine zonale verwaltete Instanzgruppe so aktualisieren möchten, dass sie eine globale Instanzvorlage verwendet, die eine Richtlinie für gestreute Platzierung angibt, und die vorhandenen VMs aus der verwalteten Instanzgruppe durch neue VMs ersetzen möchten, die die Attribute der Vorlage angeben, stellen Sie die folgende Anfrage PATCH:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, das Sie zum Erstellen einer vorhandenen MIG, der Richtlinie für gestreute Platzierung und der Instanzvorlage verwendet haben, die die Richtlinie für gestreute Platzierung angibt.

  • ZONE: Die Zone, in der sich die MIG befindet. Sie können die Richtlinie für gestreute Platzierung nur auf eine verwaltete Instanzgruppe anwenden, die sich in derselben Region wie die Platzierungsrichtlinie befindet.

  • INSTANCE_GROUP_NAME: der Name einer vorhandenen verwalteten Instanzgruppe.

  • INSTANCE_TEMPLATE_NAME: Name einer vorhandenen globalen Instanzvorlage, die eine Richtlinie für verteilte Platzierung angibt.

Weitere Informationen zu den Konfigurationsoptionen zum Aktualisieren der VMs in einer verwalteten Instanzgruppe finden Sie unter Neue Konfigurationen auf VMs in einer verwalteten Instanzgruppe aktualisieren und anwenden.

Nächste Schritte