Latenzen durch die Verwendung von Richtlinien für kompakte Platzierung reduzieren


In diesem Dokument wird beschrieben, wie Sie die Netzwerklatenz zwischen Ihren VM-Instanzen (virtuellen Maschinen) reduzieren, indem Sie Richtlinien für kompakte Platzierung erstellen und auf sie anwenden. Weitere Informationen zu Platzierungsrichtlinien, einschließlich unterstützter Gerätereihen, Einschränkungen und Preisen, finden Sie unter Übersicht über Platzierungsrichtlinien.

In einer Richtlinie für kompakte Platzierungen ist angegeben, dass Ihre VMs physisch näher beieinander platziert werden sollen. Dies kann die Leistung verbessern und die Netzwerklatenz zwischen Ihren VMs verringern, wenn Sie beispielsweise Hochleistungs-Computing (HPC), maschinelles Lernen (ML) oder Datenbankserver-Arbeitslasten ausführen.

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:

    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

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Anwenden einer Richtlinie für kompakte Platzierung auf VMs benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen und Anwenden einer Richtlinie für kompakte 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 kompakte 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
  • So erstellen Sie eine Reservierung: compute.reservations.create für das Projekt
  • Um eine Instanzvorlage zu erstellen: compute.instanceTemplates.create für das Projekt
  • So erstellen Sie eine verwaltete Instanzgruppe (MIG): compute.instanceGroupManagers.create für das Projekt
  • So rufen Sie die Details einer VM auf: compute.instances.get im Projekt

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

Kompakte Platzierungsrichtlinie erstellen

Sofern Sie keine Richtlinie für kompakte Platzierung auf N2- oder N2D-VMs anwenden möchten, empfiehlt Google Cloud, beim Erstellen der Richtlinie einen maximalen Abstand anzugeben. Weitere Informationen finden Sie unter Funktionsweise von Richtlinien für kompakte Platzierung.

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

gcloud

  • Wenn Sie die Richtlinie für kompakte Platzierung auf N2- oder N2D-VMs anwenden möchten, erstellen Sie die Richtlinie mit dem Befehl gcloud compute resource-policies create group-placement und dem Flag --collocation=collocated.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    Ersetzen Sie Folgendes:

    • POLICY_NAME: Der Name der Richtlinie für kompakte Platzierung.

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

  • Wenn Sie die Richtlinie für kompakte Platzierung auf andere unterstützte VMs anwenden möchten, erstellen Sie die Richtlinie mit dem Befehl gcloud beta compute resource-policies create group-placement und den Flags --collocation=collocated und --max-distance.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    Ersetzen Sie Folgendes:

    • POLICY_NAME: Der Name der Richtlinie für kompakte Platzierung.

    • MAX_DISTANCE: die maximale Entfernungskonfiguration für Ihre VMs. Der Wert muss zwischen 1, was bedeutet, dass die VMs für eine möglichst geringe Netzwerklatenz im selben Rack platziert werden, und 3 liegen, was bedeutet, dass die VMs in benachbarten Clustern platziert werden sollen. Wenn Sie die Richtlinie für kompakte Platzierung auf eine Reservierung anwenden möchten, können Sie keinen Wert von 1 angeben.

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

REST

  • Wenn Sie die Richtlinie für kompakte Platzierung auf N2- oder N2D-VMs anwenden möchten, erstellen Sie sie mit einer POST-Anfrage an die Methode resourcePolicies.insert. Fügen Sie im Anfragetext das Feld collocation ein und legen Sie es auf COLLOCATED fest.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID des Projekts, in dem Sie die Platzierungsrichtlinie erstellen möchten.

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

    • POLICY_NAME: Der Name der Richtlinie für kompakte Platzierung.

  • Wenn Sie die Richtlinie für kompakte Platzierung auf andere unterstützte VMs anwenden möchten, erstellen Sie sie mit einer POST-Anfrage an die Methode beta.resourcePolicies.insert. Geben Sie im Anfragetext Folgendes an:

    • Das Feld collocation ist auf COLLOCATED gesetzt.

    • Das Feld maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID des Projekts, in dem Sie die Platzierungsrichtlinie erstellen möchten.

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

    • POLICY_NAME: Der Name der Richtlinie für kompakte Platzierung.

    • MAX_DISTANCE: die maximale Entfernungskonfiguration für Ihre VMs. Der Wert muss zwischen 1, was bedeutet, dass die VMs für eine möglichst geringe Netzwerklatenz im selben Rack platziert werden, und 3 liegen, was bedeutet, dass die VMs in benachbarten Clustern platziert werden sollen. Wenn Sie die Richtlinie für kompakte Platzierung auf eine Reservierung anwenden möchten, können Sie keinen Wert von 1 angeben.

Richtlinie für kompakte Platzierung anwenden

Sie können eine Richtlinie für kompakte Platzierung auf eine vorhandene VM oder verwaltete Instanzgruppe anwenden, oder wenn Sie VMs, Instanzvorlagen, verwaltete Instanzgruppen oder Reservierungen von VMs erstellen.

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

Nachdem Sie eine Richtlinie für kompakte Platzierung auf eine VM angewendet haben, können Sie den physischen Standort der VM in Bezug auf andere VMs prüfen, die dieselbe Platzierungsrichtlinie angeben.

Richtlinie auf eine vorhandene VM anwenden

Bevor Sie eine Richtlinie für kompakte Platzierung auf eine vorhandene VM anwenden, achten Sie auf Folgendes:

Andernfalls schlägt das Anwenden der Richtlinie für kompakte Platzierung auf die VM fehl. Wenn die VM bereits eine Platzierungsrichtlinie vorgibt und Sie diese ersetzen möchten, lesen Sie stattdessen den Abschnitt Platzierungsrichtlinie in einer VM ersetzen.

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

gcloud

  1. Beenden Sie die VM.

  2. Verwenden Sie den Befehl gcloud compute instances add-resource-policies, um eine Richtlinie für kompakte 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: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

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

  3. Starten Sie die VM neu.

REST

  1. Beenden Sie die VM.

  2. Senden Sie eine POST-Anfrage an die Methode instances.addResourcePolicies, um eine Richtlinie für kompakte 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 kompakte 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 kompakte Platzierung befindet.

    • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

  3. Starten Sie die VM neu.

Richtlinie beim Erstellen einer VM anwenden

Sie können eine VM, die eine Richtlinie für kompakte 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 kompakte Platzierungen angibt:

gcloud

Verwenden Sie zum Erstellen einer VM mit einer Richtlinie für kompakte Platzierung den Befehl gcloud compute instances create mit den Flags --maintenance-policy und --resource-policies.

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

Ersetzen Sie Folgendes:

  • VM_NAME: der Name der zu erstellenden VM.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • MAINTENANCE_POLICY: Die Hostwartungsrichtlinie der VM. Wenn die von Ihnen angegebene Richtlinie für kompakte Platzierung den Wert „max-distance“ von 1 oder 2 verwendet, können Sie nur TERMINATE angeben. Andernfalls können Sie entweder MIGRATE oder TERMINATE angeben.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

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

REST

Senden Sie zum Erstellen einer VM, die eine Richtlinie für kompakte Platzierung angibt, eine POST-Anfrage an die Methode instances.insert. Geben Sie im Anfragetext die Felder onHostMaintenance und 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"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID des Projekts, in dem sich die Richtlinie für kompakte 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 kompakte Platzierung angeben.

  • VM_NAME: der Name der zu erstellenden VM.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • 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. Damit wird das neueste nicht verworfene Betriebssystem-Image angegeben. 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 kompakte Platzierungen befindet.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

  • MAINTENANCE_POLICY: Die Hostwartungsrichtlinie der VM. Wenn die von Ihnen angegebene Richtlinie für kompakte Platzierung den maximalen Abstand 1 oder 2 verwendet, können Sie nur TERMINATE angeben. Andernfalls können Sie entweder MIGRATE oder TERMINATE angeben.

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

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

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

gcloud

Wenn Sie VMs im Bulk erstellen möchten, die eine Richtlinie für kompakte Platzierung angeben, verwenden Sie den Befehl gcloud compute instances bulk create mit den Flags --maintenance-policy und --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 \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • COUNT: Die Anzahl der zu erstellenden VMs. Diese darf nicht höher sein als die maximal unterstützte Anzahl von VMs der angegebenen Richtlinie für kompakte Platzierung.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • MAINTENANCE_POLICY: Die Hostwartungsrichtlinie der VM. Wenn die von Ihnen angegebene Richtlinie für kompakte Platzierung den Wert „max-distance“ von 1 oder 2 verwendet, können Sie nur TERMINATE angeben. Andernfalls können Sie entweder MIGRATE oder TERMINATE angeben.

  • 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: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

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

REST

Wenn Sie VMs im Bulk erstellen möchten, die eine Richtlinie für kompakte Platzierungen angeben, erstellen Sie eine POST-Anfrage an die Methode instances.bulkInsert. Geben Sie im Anfragetext die Felder onHostMaintenance und 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 unten 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": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Ersetzen Sie Folgendes:

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

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

  • COUNT: Die Anzahl der zu erstellenden VMs. Diese darf nicht höher sein als die maximal unterstützte Anzahl von VMs der angegebenen Richtlinie für kompakte Platzierung.

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

        with names starting with `vm-1`, `vm-2`, and continuing up to the number
    

    der von COUNT angegebenen VMs.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • 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. Damit wird das neueste nicht verworfene Betriebssystem-Image angegeben. 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 kompakte Platzierungen befindet.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

  • MAINTENANCE_POLICY: Die Hostwartungsrichtlinie der VM. Wenn die von Ihnen angegebene Richtlinie für kompakte Platzierung den maximalen Abstand 1 oder 2 verwendet, können Sie nur TERMINATE angeben. Andernfalls können Sie entweder MIGRATE oder TERMINATE angeben.

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

Richtlinie beim Erstellen einer Reservierung anwenden

Wenn Sie eine On-Demand-Reservierung für ein einzelnes Projekt erstellen möchten, für die eine Richtlinie für kompakte Platzierungen festgelegt ist, müssen Sie eine Reservierung mit gezielter Ausrichtung erstellen. Beachten Sie beim Erstellen von VMs, die die Reservierung nutzen sollen, Folgendes:

  • Für die VMs muss dieselbe Richtlinie für kompakte Platzierung angegeben werden, die auch auf die Reservierung angewendet wird.

  • Die VMs müssen speziell auf die Reservierung abzielen, um sie nutzen zu können. Weitere Informationen finden Sie unter VMs aus einer bestimmten Reservierung nutzen.

Wählen Sie eine der folgenden Methoden aus, um eine Reservierung für ein einzelnes Projekt mit einer Richtlinie für kompakte Platzierung zu erstellen:

Wenn Sie eine Reservierung für ein einzelnes Projekt mit einer Richtlinie für kompakte Platzierung erstellen möchten, indem Sie Attribute direkt angeben, wählen Sie eine der folgenden Optionen aus:

gcloud

Wenn Sie eine Reservierung für ein einzelnes Projekt mit einer Richtlinie für kompakte Platzierung erstellen möchten, indem Sie Attribute direkt angeben, verwenden Sie den Befehl gcloud compute reservations create mit den Flags --require-specific-reservation und --resource-policies=policy.

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • RESERVATION_NAME: Der Name der Reservierung.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

  • NUMBER_OF_VMS: Die Anzahl der zu reservierenden VMs. Diese darf nicht höher sein als die unterstützte maximale Anzahl von VMs der angegebenen Richtlinie für kompakte Platzierung.

  • ZONE: die Zone, in der VMs reserviert werden sollen. Sie können VMs nur in einer Zone innerhalb der Region der angegebenen Richtlinie für kompakte Platzierungen reservieren.

REST

Wenn Sie eine Reservierung für ein einzelnes Projekt mit einer Richtlinie für kompakte Platzierung erstellen möchten, indem Sie Attribute direkt angeben, senden Sie eine POST-Anfrage an die Methode reservations.insert. Geben Sie im Anfragetext das Feld resourcePolicies und das Feld specificReservationRequired an, das auf true gesetzt ist.

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

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Ersetzen Sie Folgendes:

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

  • ZONE: die Zone, in der VMs reserviert werden sollen. Sie können VMs nur in einer Zone innerhalb der Region der angegebenen Richtlinie für kompakte Platzierungen reservieren.

  • RESERVATION_NAME: Der Name der Reservierung.

  • REGION: Die Region, in der sich die Richtlinie für kompakte Platzierungen befindet.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

  • NUMBER_OF_VMS: Die Anzahl der zu reservierenden VMs. Diese darf nicht höher sein als die unterstützte maximale Anzahl von VMs der angegebenen Richtlinie für kompakte Platzierung.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

Weitere Informationen zu den Konfigurationsoptionen zum Erstellen von Reservierungen für einzelne Projekte finden Sie unter Reservierung für ein einzelnes Projekt erstellen.

Richtlinie beim Erstellen einer Instanzvorlage anwenden

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 kompakte Platzierungen befindet. Andernfalls schlägt das Erstellen der Instanzvorlage fehl.

Nachdem Sie eine Instanzvorlage erstellt haben, die eine Richtlinie für kompakte 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 kompakte Platzierung angibt:

gcloud

Verwenden Sie zum Erstellen einer Instanzvorlage, die eine Richtlinie für kompakte Platzierungen angibt, den Befehl gcloud compute instance-templates create mit den Flags --maintenance-policy und --resource-policies.

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

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

Ersetzen Sie Folgendes:

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.

  • MACHINE_TYPE: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • MAINTENANCE_POLICY: Die Hostwartungsrichtlinie der VM. Wenn die von Ihnen angegebene Richtlinie für kompakte Platzierung den Wert „max-distance“ von 1 oder 2 verwendet, können Sie nur TERMINATE angeben. Andernfalls können Sie entweder MIGRATE oder TERMINATE angeben.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

REST

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

Geben Sie im Anfragetext die Felder onHostMaintenance und resourcePolicies an.

Wenn Sie beispielsweise eine globale Instanzvorlage erstellen möchten, die eine Richtlinie für kompakte 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"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID des Projekts, in dem sich die Richtlinie für kompakte 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. Damit wird das neueste nicht verworfene Betriebssystem-Image angegeben. 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: Ein unterstützter Maschinentyp für Richtlinien für kompakte Platzierung.

  • POLICY_NAME: Der Name einer vorhandenen Richtlinie für kompakte Platzierung.

  • MAINTENANCE_POLICY: Die Hostwartungsrichtlinie der VM. Wenn die von Ihnen angegebene Richtlinie für kompakte Platzierung den Wert „max-distance“ von 1 oder 2 verwendet, können Sie nur TERMINATE angeben. Andernfalls können Sie entweder MIGRATE oder TERMINATE angeben.

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 kompakte Platzierung angibt, können Sie mit der Vorlage Folgendes tun:

Richtlinie beim Erstellen einer MIG anwenden

Sie können VMs, die eine Richtlinie für kompakte 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 kompakte 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 kompakte Platzierung angibt.

Beispiel: Führen Sie folgenden Befehl aus, um eine zonale MIG mit einer globalen Instanzvorlage zu erstellen, die eine Richtlinie für kompakte 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 MIG, die erstellt werden soll.

  • SIZE: die Größe der MIG.

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

  • ZONE: Die Zone, in der die MIG erstellt werden soll. Sie muss sich in der Region befinden, in der sich die Richtlinie für kompakte Platzierungen befindet.

REST

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

Wenn Sie beispielsweise eine zonale MIG mit einer globalen Instanzvorlage erstellen möchten, die eine Richtlinie für kompakte Platzierungen angibt, stellen Sie eine POST-Anfrage wie hier beschrieben:

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 Projekt-ID des Projekts, in dem sich die Richtlinie für kompakte Platzierungen und die Instanzvorlage, die die Platzierungsrichtlinie angibt, befinden.

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

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

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

  • SIZE: die Größe der MIG.

Weitere Informationen zu den Konfigurationsoptionen zum Erstellen von MIGs finden Sie unter Grundlegende Szenarien zum Erstellen von MIGs.

Richtlinie auf eine vorhandene verwaltete Instanzgruppe anwenden

Sie können eine Richtlinie für kompakte Platzierungen nur auf eine vorhandene verwaltete Instanzgruppe (MIG, Managed Instance Group) anwenden, wenn sich die MIG in derselben Region oder (bei zonalen MIGs) 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 kompakte 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 kompakte Platzierung angibt.

Wenn Sie beispielsweise eine zonale MIG so aktualisieren möchten, dass sie eine Instanzvorlage verwendet, die eine Richtlinie für kompakte Platzierungen angibt, und die vorhandenen VMs aus der MIG 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 MIG_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • MIG_NAME: der Name einer vorhandenen MIG.

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

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

REST

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

Wenn Sie beispielsweise eine zonale MIG so aktualisieren möchten, dass sie eine globale Instanzvorlage verwendet, die eine Richtlinie für kompakte Platzierungen angibt, und die vorhandenen VMs aus der MIG 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/MIG_NAME

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID des Projekts, in dem sich die MIG, die Richtlinie für kompakte Platzierungen und die Instanzvorlage, die die Platzierungsrichtlinie angibt, befinden.

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

  • MIG_NAME: der Name einer vorhandenen MIG.

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

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

Physischen Standort einer VM prüfen

Nachdem Sie eine Richtlinie für kompakte Platzierung auf eine VM angewendet haben, können Sie den physischen Standort der VM in Bezug auf andere VMs aufrufen. Dieser Vergleich ist auf VMs in Ihrem Projekt beschränkt, für die dieselbe Richtlinie für kompakte Platzierung angegeben ist. Wenn Sie den physischen Standort einer VM aufrufen, haben Sie folgende Möglichkeiten:

  • Prüfen Sie, ob die Richtlinie erfolgreich angewendet wurde.

  • Identifizieren Sie, welche VMs am nächsten beieinander liegen.

Wählen Sie eine der folgenden Optionen aus, um den physischen Standort einer VM in Bezug auf andere VMs aufzurufen, die dieselbe Richtlinie für kompakte Platzierung angeben:

gcloud

Verwenden Sie den Befehl gcloud compute instances describe mit dem Flag --format, um den physischen Standort einer VM aufzurufen, die eine Richtlinie für kompakte Platzierung angibt.

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • VM_NAME: Der Name einer vorhandenen VM, die eine Richtlinie für kompakte Platzierung angibt.

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

Die Ausgabe sieht in etwa so aus:

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

Der Wert für das Feld PHYSICAL_HOST besteht aus drei Teilen. Diese Teile stellen jeweils den Cluster, Rack und Host dar, auf dem sich die VM befindet.

Beim Vergleich der Position von zwei VMs, die dieselbe Richtlinie für kompakte Platzierungen in Ihrem Projekt verwenden, gilt: Je mehr Teile des Felds PHYSICAL_HOST die VMs teilen, desto näher sind sie physisch beieinander. Angenommen, zwei VMs geben für das Feld PHYSICAL_HOST jeweils einen der folgenden Beispielwerte an:

  • /CCCCCCC/xxxxxx/xxxx: Die beiden VMs werden im selben Cluster platziert, was einem maximalen Abstand von 2 entspricht. VMs, die im selben Cluster platziert sind, haben eine geringe Netzwerklatenz.

  • /CCCCCCC/BBBBBB/xxxx: Die beiden VMs werden im selben Rack platziert, was einem maximalen Abstand von 1 entspricht. VMs, die im selben Rack platziert sind, haben eine geringere Netzwerklatenz als VMs, die im selben Cluster platziert sind.

  • /CCCCCCC/BBBBBB/AAAA: Die beiden VMs teilen sich denselben Host. VMs, die im selben Host platziert sind, minimieren die Netzwerklatenz so weit wie möglich.

REST

Führen Sie eine GET-Anfrage an die Methode instances.get aus, um den physischen Standort einer VM aufzurufen, die eine Richtlinie für kompakte Platzierungen angibt.

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID des Projekts, in dem sich die VM befindet.

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

  • VM_NAME: Der Name einer vorhandenen VM, die eine Richtlinie für kompakte Platzierung angibt.

Die Ausgabe sieht in etwa so aus:

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

Der Wert für das Feld physicalHost besteht aus drei Teilen. Diese Teile stellen jeweils den Cluster, Rack und Host dar, auf dem sich die VM befindet.

Beim Vergleich der Position von zwei VMs, die dieselbe Richtlinie für kompakte Platzierungen in Ihrem Projekt verwenden, gilt: Je mehr Teile des Felds physicalHost die VMs teilen, desto näher sind sie physisch beieinander. Angenommen, zwei VMs geben für das Feld physicalHost jeweils einen der folgenden Beispielwerte an:

  • /CCCCCCC/xxxxxx/xxxx: Die beiden VMs werden im selben Cluster platziert, was einem maximalen Abstand von 2 entspricht. VMs, die im selben Cluster platziert sind, haben eine geringe Netzwerklatenz.

  • /CCCCCCC/BBBBBB/xxxx: Die beiden VMs werden im selben Rack platziert, was einem maximalen Abstand von 1 entspricht. VMs, die im selben Rack platziert sind, haben eine geringere Netzwerklatenz als VMs, die im selben Cluster platziert sind.

  • /CCCCCCC/BBBBBB/AAAA: Die beiden VMs teilen sich denselben Host. VMs, die im selben Host platziert sind, minimieren die Netzwerklatenz so weit wie möglich.

Nächste Schritte