VMs im Bulk mit Instanzflexibilität erstellen

In diesem Dokument wird beschrieben, wie Sie die Instanzflexibilität angeben, wenn Sie virtuelle Maschinen (VMs) im Bulk erstellen. Wenn Sie diese Angabe machen, geben Sie eine Liste von Maschinentypen an, die für die VMs geeignet sind. Compute Engine stellt dann VMs mit einem der angegebenen Maschinentypen bereit, basierend auf der Kapazität und der Kontingentverfügbarkeit in einer Region.

Weitere Informationen zur Instanzflexibilität für VMs, die im Bulk erstellt wurden, finden Sie unter Informationen zur Instanzflexibilität für VMs, die im Bulk erstellt wurden.

Hinweise

  • Prüfen Sie für VMs und zugehörige Ressourcen, die Sie erstellen möchten, ob Ihr Kontingent ausreicht und Sie die erforderlichen Berechtigungen haben.
  • 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. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    2. Set a default region and zone.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

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

Erforderliche Rollen

Um die erforderlichen Berechtigungen zum Erstellen mehrerer VMs zu erhalten, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) für das 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 von VMs im Bulk erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die genau erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um VMs im Bulk zu erstellen:

  • compute.instances.create für das Projekt
  • Zum Erstellen der VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
  • Zum Erstellen der VM mit einem Snapshot: compute.snapshots.useReadOnly für den Snapshot
  • Zum Erstellen der VM mit einer Instanzvorlage: compute.instanceTemplates.useReadOnly für die Instanzvorlage
  • Zum Angeben eines Subnetzes für Ihre VM: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
  • Zum Festlegen einer statischen IP-Adresse für die VM: compute.addresses.use für das Projekt
  • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
  • Zum Zuweisen eines Legacy-Netzwerks zur VM: compute.networks.use für das Projekt
  • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein Legacy-Netzwerk verwenden: compute.networks.useExternalIp für das Projekt
  • Zum Festlegen von Metadaten der VM-Instanz für die VM: compute.instances.setMetadata für das Projekt
  • Zum Festlegen von Tags für die VM: compute.instances.setTags für die VM
  • Zum Festlegen von Labels für die VM: compute.instances.setLabels für die VM
  • Zum Festlegen eines Dienstkontos für die VM: compute.instances.setServiceAccount für die VM
  • Zum Erstellen eines neuen Laufwerks für die VM: compute.disks.create für das Projekt
  • Zum Anhängen eines vorhandenen Laufwerks im Lese- oder Lese-/Schreibmodus: compute.disks.use für das Laufwerk
  • Zum Anhängen eines vorhandenen Laufwerks im Lesemodus: compute.disks.useReadOnly für das Laufwerk

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

VMs mit mehreren Maschinentypen mit gleicher Präferenz erstellen

Wenn Ihre Arbeitslast auf mehreren verschiedenen Maschinentypen ausgeführt werden kann, können Sie in einer einzelnen Instanzauswahl eine Liste aller kompatiblen Maschinentypen angeben. Die folgenden Beispiele zeigen, wie Sie mehrere Maschinentypen mit gleicher Priorität angeben können.

gcloud

Wenn Sie VMs im Bulk mit einer einzelnen Instanzauswahl erstellen möchten, verwenden Sie den Befehl gcloud compute instances bulk create mit dem Flag --instance-selection-machine-types.

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=REGION \
    --count=COUNT \
    --instance-selection-machine-types=c3-standard-8,n2-standard-8,c2-standard-8

REST

Stellen Sie in der Compute Engine API eine POST-Anfrage an die Methode regionInstances.bulkInsert. Geben Sie im Anfragetext instanceFlexibilityPolicy mit einem instanceSelections-Eintrag an, in dem die Maschinentypen aufgeführt sind.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "test-bulk-#",
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ]
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • COUNT: die Anzahl der zu erstellenden VMs.
  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: die Region, in der die VMs erstellt werden sollen.

VMs mit mehreren Maschinentypen erstellen, die nach Präferenz sortiert sind

Wenn Compute Engine Maschinentypen in einer bestimmten Reihenfolge auswählen soll, können Sie mehrere Instanzauswahlen konfigurieren. Jede Instanzauswahl enthält eine Liste von Maschinentypen und einen Rang. Der Rang ist eine Ganzzahl, die die Priorität der Maschinentypen definiert. Ein niedrigerer Rang bedeutet eine höhere Präferenz. Compute Engine versucht, VMs mit Maschinentypen mit einer höheren Priorität (niedrigerer Rang) zu erstellen. Wenn diese Maschinentypen nicht verfügbar sind, verwendet Compute Engine Maschinentypen mit einer niedrigeren Priorität (höherer Rang).

Die folgenden Beispiele zeigen, wie Sie mehrere Instanzauswahlen mit Rängen angeben.

gcloud

Wenn Sie VMs im Bulk mit mehreren Instanzauswahlen erstellen möchten, verwenden Sie den Befehl gcloud compute instances bulk create und geben Sie das Flag --instance-selection mehrmals an.

gcloud beta compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=REGION \
    --count=COUNT \
    --instance-selection "name=most-preferred,rank=0,machine-type=c3-standard-16,machine-type=n2-standard-16, machine-type=c2-standard-16" \
    --instance-selection "name=least-preferred,rank=1,machine-type=c3-standard-8,machine-type=n2-standard-8, machine-type=c2-standard-8"

REST

Stellen Sie in der Compute Engine API eine POST-Anfrage an die Methode regionInstances.bulkInsert. Fügen Sie im Anfragetext instanceFlexibilityPolicy ein und geben Sie mehrere Einträge in instanceSelections an, jeweils mit einer Liste von Maschinentypen und einem rank.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "test-bulk-#",
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "machineTypes": [
          "c3-standard-16",
          "c2-standard-16"
        ],
        "rank": 1
      },
      "least-preferred": {
        "machineTypes": [
          "n2-standard-16",
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ],
        "rank": 2
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • COUNT: die Anzahl der zu erstellenden VMs.
  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: die Region, in der die VMs erstellt werden sollen.

Laufwerksüberschreibungen in Instanzauswahlen angeben

Standardmäßig verwenden die VMs, die durch eine Bulk-Anfrage erstellt werden, die Festplattenkonfiguration aus instanceProperties. Sie können jedoch Laufwerkskonfigurationen innerhalb einer Instanzauswahl angeben. Wenn Sie Laufwerke in einer Instanzauswahl angeben, wird die Laufwerkskonfiguration in instanceProperties für VMs, die diese Instanzauswahl verwenden, überschrieben.

Im folgenden Beispiel wird gezeigt, wie Sie Laufwerke in Instanzauswahlen angeben.

REST

Stellen Sie in der Compute Engine API eine POST-Anfrage an die Methode regionInstances.bulkInsert. Geben Sie im Anfragetext instanceFlexibilityPolicy an. Fügen Sie für jeden instanceSelections-Eintrag das Feld disks ein, um instanceProperties.disks zu überschreiben.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "test-bulk-#",
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "n2-standard-8",
          "c2-standard-8"
        ],
        "disks": [
          {
            "type": "PERSISTENT",
            "initializeParams": {
              "diskType": "pd-ssd",
              "diskSizeGb": 50,
              "sourceImage": "IMAGE_URL"
            },
            "boot": true
          },
          {
            "type": "SCRATCH",
            "initializeParams": {
              "diskType": "local-ssd"
            }
          }
        ]
      },
      "selection-2": {
        "machineTypes": [
          "c3-standard-8"
        ],
        "disks": [
          {
            "type": "PERSISTENT",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 50,
              "sourceImage": "IMAGE_URL"
            },
            "boot": true
          },
          {
            "type": "PERSISTENT",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 128,
              "sourceImage": "IMAGE_URL"
            }
          }
        ]
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • COUNT: die Anzahl der zu erstellenden VMs.
  • IMAGE_URL: URL des Bootlaufwerk-Images.
  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: die Region, in der die VMs erstellt werden sollen.