VMs auf Knoten für einzelne Mandanten bereitstellen


Auf dieser Seite wird beschrieben, wie Sie VMs auf Knoten für einzelne Mandanten bereitstellen. Dabei handelt es sich um physische Server, auf denen VMs nur aus einem einzelnen Projekt ausgeführt werden. Lesen Sie vor der Bereitstellung von VMs auf Knoten für einzelne Mandanten die Übersicht über Knoten für einzelne Mandanten.

Die Bereitstellung einer VM auf einem Knoten für einzelne Mandanten erfordert Folgendes:

  1. Vorlage für einen Knoten für einzelne Mandanten erstellen. Die Knotenvorlage für einzelne Mandanten gibt einheitliche Attribute für alle Knoten für einzelne Mandanten in einer Knotengruppe für einzelne Mandanten an.

  2. Knotengruppe für einzelne Mandanten mit der zuvor erstellten Knotenvorlage für einzelne Mandanten erstellen.

  3. VMs erstellen und in einer Knotengruppe für einzelne Mandanten bereitstellen.

Hinweis

Knotenvorlage für einzelne Mandanten erstellen

Knotenvorlagen für einzelne Mandanten sind regionale Ressourcen, die Attribute für Knotengruppen für einzelne Mandanten angeben. Sie müssen eine Knotenvorlage erstellen, bevor Sie eine Knotengruppe erstellen. Wenn Sie jedoch die Console verwenden, müssen Sie Knotenvorlagen während der Erstellung einer Knotengruppe für einzelne Mandanten erstellen.

Console

Sie müssen eine Knotenvorlage für einzelne Mandanten erstellen, bevor Sie eine Knotengruppe erstellen. Mit der Console müssen Sie die Knotenvorlage während der Erstellung einer Knotengruppe für einzelne Mandanten erstellen. Die neue Knotenvorlage wird in derselben Region erstellt, die Sie in den Attributen der Knotengruppe angeben.

  1. Rufen Sie in der Cloud Console die Seite Knoten für einzelne Mandanten auf.

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf Knotengruppe erstellen.

  3. Geben Sie einen Namen für die Knotengruppe an.

  4. Geben Sie eine Region an, in der die Knotenvorlage erstellt werden soll. Sie können die Knotenvorlage verwenden, um Knotengruppen in jeder Zone dieser Region zu erstellen.

  5. Geben Sie die Zone an und klicken Sie auf Weiter.

  6. Klicken Sie in der Liste Knotenvorlage auf Knotenvorlage erstellen, um eine Knotenvorlage für einzelne Mandanten zu erstellen.

  7. Geben Sie einen Namen für die Knotenvorlage an.

  8. Geben Sie den Knotentyp für jeden Knoten für einzelne Mandanten in der Knotengruppe an, der basierend auf dieser Knotenvorlage erstellt werden soll.

  9. Optional können Sie auch folgende Attribute für die Knotenvorlage angeben.

    • Fügen Sie eine lokale SSD und einen GPU-Beschleuniger hinzu.

    • Wählen Sie CPU-Overcommit aktivieren, um die CPU-Overcommit-Stufen für jede auf dem Knoten geplante VM zu steuern.

    • Fügen Sie Affinitätslabels hinzu. Mit Affinitätslabels können Sie Knoten und Knotengruppen logisch gruppieren. Später können Sie bei der Bereitstellung von VMs Affinitätslabels auf den VMs angeben, um VMs auf einem bestimmten Satz von Knoten oder Knotengruppen zu planen. Weitere Informationen finden Sie unter Knotenaffinität und Anti-Affinität.

  10. Klicken Sie auf Erstellen, um das Erstellen der Knotenvorlage abzuschließen.

  11. Optional: Wiederholen Sie die vorherigen Schritte, um eine neue Knotenvorlage für einzelne Mandanten in einer anderen Region hinzuzufügen.

Zum Aufrufen der Knotenvorlagen klicken Sie auf der Seite Knoten für einzelne Mandanten auf Knotenvorlagen.

gcloud

Verwenden Sie den Befehl gcloud compute sole-tenancy node-templates create, um eine Knotenvorlage zu erstellen:

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--region=REGION]

Dabei gilt:

  • TEMPLATE_NAME: Name der neuen Knotenvorlage.

  • NODE_TYPE: Knotentyp für Knoten für einzelne Mandanten, die anhand dieser Vorlage erstellt wurden. Verwenden Sie den Befehl gcloud compute sole-tenancy node-types list, um eine Liste der in den einzelnen Zonen verfügbaren Knotentypen abzurufen.

  • GPU_TYPE: Der GPU-Typ für jeden Knoten für einzelne Mandanten, der anhand dieser Knotenvorlage erstellt wurde. Informationen zur zonalen Verfügbarkeit von GPUs erhalten Sie, wenn Sie mit dem Befehl gcloud compute accelerator-types list eine Zone auswählen, in der der Knotentyp n1 für einzelne Mandanten verfügbar ist. Legen Sie je nach zonaler Verfügbarkeit eine der folgenden Optionen fest:

    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: die Anzahl der GPUs, die je nach Art der GPU angegeben werden sollen. Legen Sie den Wert für den GPU-Typ fest, wie in der folgenden Tabelle dargestellt:

    GPU_TYPE GPU_COUNT
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • CPU_OVERCOMMIT_TYPE: Der Overcommit-Typ für CPUs auf einer VM. Legen Sie dafür enabled oder none fest.

  • DISK_COUNT: Anzahl der SSD-Laufwerke. Legen Sie dafür 16 oder 24 fest.

  • DISK_SIZE: Optionaler Wert für die Partitionsgröße der lokalen SSD in GB. Die einzige unterstützte Partitionsgröße ist 375. Wenn Sie diesen Wert nicht festlegen, wird standardmäßig 375 verwendet.

  • AFFINITY_LABELS: Schlüssel und Werte, [KEY=VALUE,...], für Affinitätslabels. Mit Affinitätslabels können Sie Knoten und Knotengruppen logisch gruppieren. Später können Sie bei der Bereitstellung von VMs Affinitätslabels auf den VMs angeben, um VMs auf einem bestimmten Satz von Knoten oder Knotengruppen zu planen. Weitere Informationen finden Sie unter Knotenaffinität und Anti-Affinität.

  • REGION: Region, in der die Knotenvorlage erstellt werden soll. Mit dieser Vorlage können Sie Knotengruppen in jeder Zone dieser Region erstellen.

API

Verwenden Sie die nodeTemplates.insert-Methode, um eine Knotenvorlage zu erstellen:

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

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

Dabei gilt:

  • PROJECT_ID: die Projekt-ID.

  • REGION: Region, in der die Knotenvorlage erstellt werden soll. Mit dieser Vorlage können Sie Knotengruppen in jeder Zone dieser Region erstellen.

  • TEMPLATE_NAME: Name der neuen Knotenvorlage.

  • NODE_TYPE: Knotentyp für Knoten für einzelne Mandanten, die anhand dieser Vorlage erstellt wurden. Mit der Methode nodeTypes.list können Sie eine Liste der in jeder Zone verfügbaren Knotentypen abrufen.

  • KEY: nodeAffinityLabels-Wert, der den Schlüsselteil eines Knotenaffinitätslabels angibt, der als Schlüssel/Wert-Paar ausgedrückt wird. Mit Affinitätslabels können Sie Knoten und Knotengruppen logisch gruppieren. Später können Sie bei der Bereitstellung von VMs Affinitätslabels auf den VMs angeben, um VMs auf einem bestimmten Satz von Knoten oder Knotengruppen zu planen. Weitere Informationen finden Sie unter Knotenaffinität und Anti-Affinität.

  • VALUE: Ein nodeAffinityLabels-Wert, der den Wertteil eines Schlüssel/Wert-Paares mit Knotenaffinitätslabel angibt.

  • GPU_TYPE: Der GPU-Typ für jeden Knoten für einzelne Mandanten, der anhand dieser Knotenvorlage erstellt wurde. Informationen zur zonalen Verfügbarkeit von GPUs erhalten Sie, wenn Sie mit dem Befehl gcloud compute accelerator-types list eine Zone auswählen, in der der Knotentyp n1 für einzelne Mandanten verfügbar ist. Legen Sie je nach zonaler Verfügbarkeit eine der folgenden Optionen fest:

    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: Die Anzahl der GPUs für jeden Knoten für einzelne Mandanten, die anhand dieser Knotenvorlage erstellt wurden. Legen Sie den Wert für den GPU-Typ fest, wie in der folgenden Tabelle dargestellt:

    GPU_TYPE GPU_COUNT
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_SIZE: Optionaler Wert für die Partitionsgröße der lokalen SSD in GB. Die einzige unterstützte Partitionsgröße ist 375. Wenn Sie diesen Wert nicht festlegen, wird standardmäßig 375 verwendet.

  • DISK_COUNT: Anzahl der SSD-Laufwerke. Legen Sie dafür 16 oder 24 fest.

  • CPU_OVERCOMMIT_TYPE: CPU-Overcommit-Typ. Legen Sie dafür enabled, none, oder CPU_OVERCOMMIT_TYPE_UNSPECIFIED fest.

Knotengruppe für einzelne Mandanten erstellen

Erstellen Sie mit der zuvor erstellten Knotenvorlage für einzelne Mandanten eine Knotengruppe für einzelne Mandanten. Eine Knotengruppe für einzelne Mandanten übernimmt die Attribute, die in der Knotenvorlage für einzelne Mandanten festgelegt sind, und erfordert zusätzliche Werte, die angegeben werden müssen.

Console

  1. Rufen Sie in der Cloud Console die Seite Knoten für einzelne Mandanten auf.

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf Knotengruppe erstellen, um eine Knotengruppe zu erstellen.

  3. Geben Sie einen Namen für die Knotengruppe an.

  4. Geben Sie die Region für die Knotengruppe an, damit die verfügbaren Knotenvorlagen in dieser Region angezeigt werden.

  5. Geben Sie die Zone innerhalb der Region an, in der die Knotengruppe erstellt werden soll.

  6. Geben Sie die Knotenvorlage an, um die Knotengruppe zu erstellen, oder klicken Sie auf Knotenvorlage erstellen, um eine neue Knotenvorlage für einzelne Mandanten zu erstellen. Die ausgewählte Knotenvorlage wird auf die Knotengruppe angewendet.

  7. Wählen Sie eine der folgenden Optionen zum Autoscaling-Modus für das Autoscaling der Knotengruppe aus:

    • Deaktiviert: Größe der Knotengruppe manuell verwalten.

    • Automatisch skalieren: Damit werden Knoten automatisch zur Knotengruppe hinzugefügt oder daraus entfernt.

    • Nur horizontal skalieren: Damit werden der Knotengruppe Knoten hinzugefügt, wenn zusätzliche Kapazitäten benötigt werden.

  8. Geben Sie die Anzahl der Knoten für die Gruppe an. Wenn Sie Autoscaling für Knotengruppen aktivieren, geben Sie einen Bereich für die Größe der Knotengruppe an. Sie können die Werte später manuell ändern.

  9. Legen Sie unter Wartungsrichtlinie einen der unten aufgeführten Werte für die Knotengruppe für einzelne Mandanten fest. Mit der Wartungsrichtlinie können Sie das Verhalten von VMs in der Knotengruppe während Hostwartungen konfigurieren. Weitere Informationen finden Sie unter Wartungsrichtlinien.

    • Standard
    • Vor Ort neu starten
    • Innerhalb der Knotengruppe migrieren
  10. Klicken Sie auf Erstellen, um das Erstellen der Knotengruppe abzuschließen.

gcloud

Führen Sie den Befehl gcloud compute sole-tenancy node-groups create aus, um eine Knotengruppe basierend auf einer zuvor erstellten Knotenvorlage zu erstellen:

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

Dabei gilt:

  • GROUP_NAME: Name der neuen Knotengruppe.

  • TEMPLATE_NAME: Name der Knotenvorlage, die zum Erstellen dieser Gruppe verwendet werden soll.

  • TARGET_SIZE: Anzahl der Knoten, die in der Gruppe erstellt werden sollen.

  • ZONE: Zone, in der die Knotengruppe erstellt werden soll. Dies muss dieselbe Region sein wie bei der Knotenvorlage, auf der Sie die Knotengruppe aufbauen.

  • MAINTENANCE_POLICY: Wartungsrichtlinie für die Knotengruppe. Weitere Informationen finden Sie unter Wartungsrichtlinien. Dies muss einer der folgenden Werte sein:

    • default
    • restart-in-place
    • migrate-within-node-group
  • START_TIME: Startzeit in GMT für das Wartungsfenster für die VMs in dieser Knotengruppe. Legen Sie einen der folgenden Werte fest: 00:00, 04:00, 08:00, 12:00, 16:00 oder 20:00. Wenn nicht festgelegt, hat die Knotengruppe kein festgelegtes Wartungsfenster.

  • AUTOSCALER_MODE: Autoscaling-Richtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein: .

    • off: Größe der Knotengruppe manuell verwalten.

    • on: Knoten automatisch zur Knotengruppe hinzufügen oder daraus entfernen.

    • only-scale-out: Knoten zur Knotengruppe hinzufügen, wenn zusätzliche Kapazität benötigt wird.

  • MIN_NODES: Minimale Größe der Knotengruppe. Der Standardwert ist 0 und muss eine Ganzzahl kleiner oder gleich MAX_NODES sein.

  • MAX_NODES: Maximale Größe der Knotengruppe. Dieser Wert muss kleiner oder gleich 100 und größer oder gleich MIN_NODES sein. Erforderlich, wenn AUTOSCALER_MODE nicht auf off eingestellt ist.

API

Verwenden Sie die nodeGroups.insert-Methode, um eine Knotengruppe basierend auf einer zuvor erstellten Knotenvorlage zu erstellen:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=TARGET_SIZE
{ "nodeTemplate": "regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": MAINTENANCE_POLICY, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

Dabei gilt:

  • PROJECT_ID: die Projekt-ID.

  • ZONE: Zone, in der die Knotengruppe erstellt werden soll. Dies muss dieselbe Region sein wie bei der Knotenvorlage, auf der Sie die Knotengruppe aufbauen.

  • TARGET_SIZE: Anzahl der Knoten, die in der Gruppe erstellt werden sollen.

  • REGION: Region, in der die Knotengruppe erstellt werden soll. In der ausgewählten Region muss eine Knotenvorlage vorhanden sein.

  • TEMPLATE_NAME: Name der Knotenvorlage, die zum Erstellen dieser Gruppe verwendet werden soll.

  • GROUP_NAME: Name der neuen Knotengruppe.

  • MAINTENANCE_POLICY: Wartungsrichtlinie Wartungsrichtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP
  • START_TIME: Startzeit in GMT für das Wartungsfenster für die VMs in dieser Knotengruppe. Legen Sie einen der folgenden Werte fest: 00:00, 04:00, 08:00, 12:00, 16:00 oder 20:00. Wenn nicht festgelegt, hat die Knotengruppe kein festgelegtes Wartungsfenster.

  • AUTOSCALER_MODE: Autoscaling-Richtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein:

    • OFF: Größe der Knotengruppe manuell verwalten.

    • ON: Knoten automatisch zur Knotengruppe hinzufügen oder daraus entfernen.

    • ONLY_SCALE_OUT: Knoten zur Knotengruppe hinzufügen, wenn zusätzliche Kapazität benötigt wird.

  • MIN_NODES: Minimale Größe der Knotengruppe. Der Standardwert ist 0 und muss ein ganzzahliger Wert kleiner oder gleich MAX_NODES sein.

  • MAX_NODES: Maximale Größe der Knotengruppe. Dieser Wert muss kleiner oder gleich 100 und größer oder gleich MIN_NODES sein. Erforderlich, wenn AUTOSCALER_MODE nicht auf OFF eingestellt ist.

VM für einzelne Mandanten bereitstellen

Nachdem Sie eine Knotengruppe basierend auf einer zuvor erstellten Knotenvorlage erstellt haben, können Sie einzelne VMs in einer Knotengruppe für einzelne Mandanten bereitstellen.

Wenn Sie eine VM auf einem bestimmten Knoten oder einer bestimmten Knotengruppe mit Affinitätslabels bereitstellen möchten, die mit den Labels übereinstimmen, die Sie zuvor der Knotenvorlage zugewiesen haben, gehen Sie nach dem Standardverfahren zum Erstellen einer VM-Instanz vor. Weisen Sie der VM dabei Affinitätslabels zu.

Alternativ können Sie wie im Folgenden beschrieben vorgehen, um eine VM auf einem Knoten für einen einzelnen Mandanten von der Detailseite der Knotengruppe aus bereitzustellen. Basierend auf der Knotengruppe, auf der Sie VMs bereitstellen, weist Compute Engine Affinitätslabels zu.

Console

  1. Rufen Sie in der Cloud Console die Seite Knoten für einzelne Mandanten auf.

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf Knotengruppen.

  3. Klicken Sie auf den Namen der Knotengruppe, auf der Sie eine VM-Instanz bereitstellen möchten. Wenn Sie eine VM auf einem bestimmten Knoten für einzelne Mandanten bereitstellen möchten, klicken Sie zur Bereitstellung der VM auf den Namen des Knotens für einzelne Mandanten.

  4. Klicken Sie auf Instanz erstellen, um eine VM-Instanz in dieser Knotengruppe bereitzustellen. Beachten Sie die Werte, die automatisch für Name, Region und Zone angewendet werden. Ändern Sie diese Werte nach Bedarf.

  5. Wählen Sie eine Maschinenkonfiguration aus. Legen Sie dazu Werte für Maschinenfamilie, Reihe und Maschinentyp fest. Wählen Sie die Serie aus, die dem Knotentyp für einzelne Mandanten entspricht.

  6. Ändern Sie bei Bedarf das Bootlaufwerk, die Firewall und andere Einstellungen.

  7. Klicken Sie auf Einzelne Mandanten und notieren Sie die automatisch zugewiesenen Knotenaffinitätslabels. Über Durchsuchen können Sie ggf. Anpassungen vornehmen.

  8. Klicken Sie auf Verwaltung und wählen Sie für Bei Hostwartung eine der folgenden Optionen aus:

    • VM-Instanz migrieren (empfohlen): VM wird während der Wartungsereignisse zu einem anderen Knoten in der Knotengruppe migriert.

    • Beenden: VM wird während Wartungsereignissen gestoppt.

  9. Wählen Sie eine der folgenden Optionen für den automatischen Neustart aus:

    • An (empfohlen): VMs werden automatisch neu gestartet, wenn sie für Wartungsereignisse beendet wurden.

    • Aus: VMs werden nach einem Wartungsereignis nicht automatisch neu gestartet.

  10. Klicken Sie auf Erstellen, um die Erstellung der VM für einzelne Mandanten abzuschließen.

gcloud

Verwenden Sie den Befehl gcloud compute instances create, um eine VM in einer Knotengruppe für einzelne Mandanten bereitzustellen:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

Das Flag --restart-on-failure gibt an, ob VMs für einzelne Mandanten nach dem Beenden neu gestartet werden. Dieses Flag ist standardmäßig aktiviert. Verwenden Sie zum Deaktivieren --no-restart-on-failure.

Dabei gilt:

  • VM_NAME: Name der neuen VM für einzelne Mandanten.

  • ZONE: Zone zur Bereitstellung der VM für einzelne Mandanten.

  • IMAGE_FAMILY: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden soll.

  • IMAGE_PROJECT: Image-Projekt der Image-Familie.

  • GROUP_NAME: Name der Knotengruppe, in der die VM bereitgestellt werden soll.

  • MACHINE_TYPE: Maschinentyp der VM für einzelne Mandanten. Rufen Sie mit dem Befehl gcloud compute machine-types list eine Liste der verfügbaren Maschinentypen für das Projekt ab.

  • MAINTENANCE_POLICY: Gibt das Neustartverhalten von VMs für einzelne Mandanten während Wartungsereignissen an. Legen Sie dafür einen der folgenden Werte fest: .

    • MIGRATE: VM wird während der Wartungsereignisse zu einem anderen Knoten in der Knotengruppe migriert.

    • TERMINATE: VM wird bei Wartungsereignissen beendet.

  • GPU_TYPE: GPU-Typ Wird auf einen der Beschleunigertypen festgelegt, die beim Erstellen der Knotenvorlage angegeben wurden.

  • GPU_COUNT: Anzahl der GPUs der Gesamtzahl, die von der Knotenvorlage angegeben wird, um diese VM hinzuzufügen. Der Standardwert ist 1.

  • SSD_INTERFACE: Typ der lokalen SSD-Schnittstelle. Sie können dies nur für Instanzen festlegen, die aus einer Knotenvorlage mit lokalem SSD-Support erstellt wurden. Wenn Sie dies beim Erstellen der Instanz angeben und die Knotenvorlage keine lokale SSD unterstützt, schlägt die Instanzerstellung fehl. Wird auf nvme gesetzt, wenn die Image-Treiber des Bootlaufwerks für NVMe optimiert sind, andernfalls auf scsi. Geben Sie dieses Flag und einen entsprechenden Wert für jede lokale SSD-Partition an.

API

Verwenden Sie die Methode instances.insert, um eine VM in einer Knotengruppe für einzelne Mandanten bereitzustellen:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

Dabei gilt:

  • PROJECT_ID: die Projekt-ID.

  • VM_ZONE: Zone zur Bereitstellung der VM für einzelne Mandanten.

  • MACHINE_TYPE_ZONE: Zone des Maschinentyps.

  • MACHINE_TYPE: Maschinentyp der VM für einzelne Mandanten. Mit der Methode machineTypes.list rufen Sie eine Liste der verfügbaren Maschinentypen für das Projekt ab.

  • VM_NAME: Name der neuen VM für einzelne Mandanten.

  • MAINTENANCE_POLICY: Gibt das Neustartverhalten von VMs für einzelne Mandanten während Wartungsereignissen an. Legen Sie dafür einen der folgenden Werte fest: .

    • MIGRATE: VM wird während der Wartungsereignisse zu einem anderen Knoten in der Knotengruppe migriert.

    • TERMINATE: VM wird bei Wartungsereignissen beendet.

  • RESTART_ON_FAILURE: gibt an, ob VMs für einzelne Mandanten nach dem Beenden neu gestartet werden. Der Standardwert ist true.

  • GROUP_NAME: Name der Knotengruppe, in der die VM bereitgestellt werden soll.

  • NETWORK: URL der Netzwerkressource für diese VM.

  • REGION: Region mit dem Subnetzwerk für diese VM.

  • SUBNETWORK: URL der Subnetzressource für diese VM.

  • GPU_TYPE: GPU-Typ Wird auf einen der Beschleunigertypen festgelegt, die beim Erstellen der Knotenvorlage angegeben wurden.

  • GPU_COUNT: Anzahl der GPUs der Gesamtzahl, die von der Knotenvorlage angegeben wird, um diese VM hinzuzufügen. Der Standardwert ist 1.

  • IMAGE_PROJECT: Image-Projekt der Image-Familie.

  • IMAGE_FAMILY: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden soll.

  • LOCAL_SSD_ZONE: Zone des lokalen SSD.

  • SSD_INTERFACE: Typ der lokalen SSD-Schnittstelle. Wird auf NVME gesetzt, wenn die Image-Treiber des Bootlaufwerks für NVMe optimiert sind, andernfalls auf SCSI.

Gruppe von VMs für einzelne Mandanten bereitstellen

Mit MIGs (Managed Instance Groups, verwaltete Instanzgruppen) können Sie eine Gruppe identischer VMs für einzelne Mandanten bereitstellen. Mit Affinitätslabels können Sie den Knoten für einzelne Mandanten oder die Knotengruppe angeben, auf der die Gruppe der VMs für einzelne Mandanten bereitgestellt werden soll.

Für regionale MIGs müssen Sie Knotengruppen in allen Zonen der regionalen MIG erstellen und Knotenaffinitäten für diese Knotengruppen in der Instanzvorlage der regionalen MIG angeben.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine Vorlage für verwaltete Instanzgruppen für eine Gruppe von VMs, die in einer Knotengruppe für einzelne Mandanten erstellt werden sollen:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    Ersetzen Sie Folgendes:

    • INSTANCE_TEMPLATE: Name für die neue Instanzvorlage.

    • MACHINE_TYPE: Maschinentyp der VM für einzelne Mandanten. Rufen Sie mit dem Befehl gcloud compute machine-types list eine Liste der verfügbaren Maschinentypen für das Projekt ab.

    • IMAGE_PROJECT: Image-Projekt der Image-Familie.

    • IMAGE_FAMILY: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden soll.

    • GROUP_NAME: Name der Knotengruppe, in der die VM bereitgestellt werden soll. Wenn Sie diese Instanzvorlage verwenden möchten, um eine regionale MIG zu erstellen, die in mehreren Zonen vorhanden ist, können Sie alternativ das --node-affinity-file-Flag verwenden, um eine Liste mit Werten für die Knotengruppen der regionalen MIG anzugeben.

    • GPU_TYPE: GPU-Typ Wird auf einen der Beschleunigertypen festgelegt, die beim Erstellen der Knotenvorlage angegeben wurden.

    • GPU_COUNT: Anzahl der GPUs der Gesamtzahl, die von der Knotenvorlage angegeben wird, um diese VM hinzuzufügen. Der Standardwert ist 1.

    • SSD_INTERFACE: Typ der lokalen SSD-Schnittstelle. Wird auf nvme gesetzt, wenn die Image-Treiber des Bootlaufwerks für NVMe optimiert sind, andernfalls auf scsi. Geben Sie dieses Flag und einen entsprechenden Wert für jede lokale SSD-Partition an.

  2. Verwenden Sie den Befehl gcloud compute instance-groups managed create, um eine verwaltete Instanzgruppe innerhalb Ihrer Knotengruppe für einzelne Mandanten zu erstellen:

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

    Dabei gilt:

    • INSTANCE_GROUP_NAME: Name dieser Instanzgruppe.

    • SIZE: Anzahl der VMs, die in dieser Instanzgruppe enthalten sein sollen. Ihre Knotengruppe muss genügend Ressourcen haben, um die Instanzen in dieser verwalteten Instanzgruppe unterzubringen. Verwenden Sie das Autoscaling für verwaltete Instanzgruppen, um die Größe verwalteter Instanzgruppen automatisch zu verwalten.

    • INSTANCE_TEMPLATE: Name der Instanzvorlage, die zum Erstellen dieser MIG verwendet werden soll. Die Vorlage benötigt mindestens ein Knotenaffinitätslabel, das auf die entsprechenden Knotengruppen verweist.

    • ZONE: Zone, in der die verwaltete Instanzgruppe erstellt werden soll. Ersetzen Sie bei einer regionalen MIG das --zone-Flag durch das --region-Flag und geben Sie eine Region an. Fügen Sie außerdem das --zones-Flag hinzu, um alle Zonen anzugeben, in denen die Knotengruppen vorhanden sind.

API

  1. Erstellen Sie mit der Methode instanceTemplates.insert in der Knotengruppe für einzelne Mandanten eine verwaltete Instanzgruppenvorlage:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    Dabei gilt:

    • PROJECT_ID: die Projekt-ID.

    • TEMPLATE_ZONE Zone, in der die Instanz erstellt wird.

    • INSTANCE_TEMPLATE: Name der neuen Instanzvorlage.

    • MACHINE_TYPE_ZONE: Zone des Maschinentyps.

    • MACHINE_TYPE: Maschinentyp der VM für einzelne Mandanten. Mit der Methode machineTypes.list rufen Sie eine Liste der verfügbaren Maschinentypen für das Projekt ab.

    • GROUP_NAME: Name der Knotengruppe, in der die VM bereitgestellt werden soll. Wenn Sie mit dieser Instanzvorlage eine regionale MIG erstellen möchten, die in mehreren Zonen vorhanden ist, geben Sie eine Liste der Knotengruppen an, die in den Zonen der regionalen MIG vorhanden sind.

    • NETWORK: URL der Netzwerkressource für diese Instanzvorlage.

    • REGION: Region mit dem Subnetzwerk für diese Instanzvorlage.

    • SUBNETWORK: URL der Subnetzwerkressource für diese Instanzvorlage.

    • GPU_TYPE: GPU-Typ Wird auf einen der Beschleunigertypen festgelegt, die beim Erstellen der Knotenvorlage angegeben wurden.

    • GPU_COUNT: Anzahl der GPUs der Gesamtzahl, die von der Knotenvorlage angegeben wird, um diese VM hinzuzufügen. Der Standardwert ist 1.

    • IMAGE_PROJECT: Image-Projekt der Image-Familie.

    • IMAGE_FAMILY: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden soll.

    • LOCAL_SSD_ZONE: Zone des lokalen SSD.

    • SSD_INTERFACE: Typ der lokalen SSD-Schnittstelle. Wird auf NVME gesetzt, wenn die Image-Treiber des Bootlaufwerks für NVMe optimiert sind, andernfalls auf SCSI.

  2. Verwenden Sie die Methode instanceGroupManagers.insert, um eine MIG in Ihrer Knotengruppe für einzelne Mandanten basierend auf der zuvor erstellten Instanzvorlage zu erstellen. Wenn Sie eine regionale MIG erstellen möchten, verwenden Sie die Methode regionInstanceGroupManagers.insert und geben Sie die Region und die Zonen aller Knotengruppen wie in der Instanzvorlage an, wenn Sie eine regionale MIG erstellen möchten.

    Verwenden Sie beispielsweise folgende Anfrage, um eine zonale MIG zu erstellen:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.

    • ZONE: Zone, in der die verwaltete Instanzgruppe erstellt werden soll.

    • NAME_PREFIX: Präfixname für jede Instanz in der verwalteten Instanzgruppe.

    • INSTANCE_GROUP_NAME: Name der Instanzgruppe.

    • SIZE: Anzahl der VMs, die in dieser Instanzgruppe enthalten sein sollen. Ihre Knotengruppe muss genügend Ressourcen haben, um die Instanzen in dieser verwalteten Instanzgruppe unterzubringen. Verwenden Sie das Autoscaling für verwaltete Instanzgruppen, um die Größe verwalteter Instanzgruppen automatisch zu verwalten.

    • INSTANCE_TEMPLATE: URL der Instanzvorlage zum Erstellen dieser Gruppe. Die Vorlage benötigt ein Knotenaffinitätslabel, das auf die geeignete Knotengruppe verweist.

Knotenaffinitätslabels konfigurieren

Mit Knotenaffinitätslabels können Sie Knotengruppen logisch gruppieren und VMs für einen bestimmten Satz von Knotengruppen planen. Mit Knotenaffinitätslabels lassen sich VMs auch in Knotengruppen über verschiedene Zonen hinweg planen. Gleichzeitig können die Knotengruppen weiterhin in einer logischen Gruppe belassen werden. Das folgende Verfahren ist ein Beispiel für die Verwendung von Affinitätslabels, um VMs einer bestimmten Knotengruppe zuzuordnen, die für Produktionsarbeitslasten verwendet wird. In diesem Beispiel wird gezeigt, wie Sie eine einzelne VM planen. Sie können aber auch verwaltete Instanzgruppen verwenden, um eine Gruppe von VMs zu planen.

gcloud

  1. Verwenden Sie den Befehl gcloud compute sole-tenancy node-templates create, um eine Knotenvorlage mit einer Reihe von Affinitätslabels für eine Produktionsarbeitslast zu erstellen:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. Verwenden Sie den Befehl gcloud compute sole-tenancy node-templates describe, um die Knotenaffinitätslabels aufzurufen, die der Knotenvorlage zugewiesen sind.

  3. Verwenden Sie den Befehl gcloud compute sole-tenancy node-groups create, um eine Knotengruppe zu erstellen, die die Produktionsvorlage verwendet:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. Erstellen Sie für Produktions-VMs eine Datei node-affinity-prod.json, um die Affinität Ihrer Produktions-VMs anzugeben. Sie können beispielsweise eine Datei erstellen, die angibt, dass VMs nur auf Knoten mit den Affinitäten workload=frontend und environment=prod ausgeführt werden. Erstellen Sie die Knotenaffinitätsdatei mit Cloud Shell oder erstellen Sie sie an einem Speicherort Ihrer Wahl.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Verwenden Sie die Datei node-affinity-prod.json mit dem Befehl gcloud compute instances create, um eine VM auf der Knotengruppe mit übereinstimmenden Affinitätslabels zu planen.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. Verwenden Sie den Befehl gcloud compute instances describe und prüfen Sie das Feld scheduling, um die der VM zugewiesenen Knotenaffinitäten anzusehen.

Anti-Affinitätslabels für Knoten konfigurieren

Knotenaffinitätslabels können als Anti-Affinitätslabels konfiguriert werden, um zu verhindern, dass VMs auf bestimmten Knoten ausgeführt werden. Sie können beispielsweise Anti-Affinitätslabels verwenden, um zu verhindern, dass VMs, die Sie für Entwicklungszwecke verwenden, auf denselben Knoten wie Ihre Produktions-VM geplant werden. Das folgende Beispiel zeigt, wie Sie mithilfe von Affinitätslabels verhindern, dass VMs in bestimmten Knotengruppen ausgeführt werden. In diesem Beispiel wird gezeigt, wie Sie eine einzelne VM planen. Sie können aber auch verwaltete Instanzgruppen verwenden, um eine Gruppe von VMs zu planen.

gcloud

  1. Geben Sie für Entwicklungs-VMs die Affinität Ihrer Entwicklungs-VMs an, indem Sie eine node-affinity-dev.json-Datei mit Cloud Shell oder indem Sie sie an einem Speicherort Ihrer Wahl erstellen. Sie können etwa eine Datei erstellen, mit der VMs so konfiguriert werden, dass sie in einer beliebigen Knotengruppe mit der Affinität workload=frontend ausgeführt werden, sofern sie nicht den Wert environment=prod hat:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. Verwenden Sie die Datei node-affinity-dev.json mit dem Befehl gcloud compute instances create, um die Entwicklungs-VM zu erstellen:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Mit dem Befehl gcloud compute instances describe können Sie das Feld scheduling prüfen, um die der VM zugewiesenen Knoten-Anti-Affinitäten anzusehen.

Knotengruppe löschen

Wenn Sie eine Knotengruppe für einzelne Mandanten löschen müssen, entfernen Sie zuerst alle VMs aus der Knotengruppe.

Console

  1. Rufen Sie die Seite Knoten für einzelne Mandanten auf.

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf den Namen der zu löschenden Knotengruppe.

  3. Klicken Sie für jeden Knoten in der Knotengruppe auf den Namen des Knotens und löschen Sie einzelne VM-Instanzen auf der Seite mit den Knotendetails. Alternativ können Sie das Standardverfahren zum Löschen einer einzelnen VM befolgen. Löschen Sie die verwaltete Instanzgruppe, um VMS in einer verwalteten Instanzgruppe zu löschen.

  4. Nachdem Sie alle VM-Instanzen gelöscht haben, die auf allen Knoten der Knotengruppe ausgeführt werden, kehren Sie zur Seite Knoten für einzelne Mandanten zurück.

    Zu Seite Knoten für einzelne Mandanten

  5. Klicken Sie auf Knotengruppen.

  6. Wählen Sie den Namen der zu löschenden Knotengruppe aus.

  7. Klicken Sie auf Löschen.

gcloud

  1. Listen Sie mit dem Befehl gcloud compute sole-tenancy node-groups list-nodes die VM-Instanzen auf, die auf Knoten in der Knotengruppe ausgeführt werden:

    gcloud compute sole-tenancy node-groups list-nodes GROUP_NAME \
      --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • GROUP_NAME: Der Name der Knotengruppe.

    • ZONE: Die Zone der Knotengruppe.

  2. Wenn VMs in der Knotengruppe ausgeführt werden, löschen Sie eine einzelne VM oder eine verwaltete Instanzgruppe.

  3. Löschen Sie nach dem Löschen aller VMs, die auf allen Knoten der Knotengruppe ausgeführt werden, die Knotengruppe mit dem Befehl gcloud compute sole-tenancy node-groups delete:

    gcloud compute sole-tenancy node-groups delete GROUP_NAME \
        --zone=ZONE
    

    Dabei gilt:

    • GROUP_NAME: Name der Knotengruppe.

    • ZONE: Zone der Knotengruppe.

API

  1. Mit der Methode nodeGroups.listNodes können Sie ausgeführte VM-Instanzen auf Knoten in der Knotengruppe auflisten:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME/listNodes
    

    Dabei gilt:

    • PROJECT_ID: die Projekt-ID

    • ZONE: Zone der Knotengruppe.

    • GROUP_NAME: Gruppe, für die die VMs aufgelistet werden sollen.

  2. Wenn VMs in der Knotengruppe ausgeführt werden, löschen Sie eine einzelne VM oder eine verwaltete Instanzgruppe.

  3. Nachdem Sie alle VMs gelöscht haben, die auf allen Knoten der Knotengruppe ausgeführt werden, löschen Sie die Knotengruppe mit der Methode nodeGroups.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME
    

    Dabei gilt:

    • PROJECT_ID: die Projekt-ID

    • ZONE: Zone der Knotengruppe.

    • GROUP_NAME: Name der Knotengruppe, die gelöscht werden soll.

Knotenvorlage löschen

Sie können eine Knotenvorlage löschen, nachdem Sie alle Knotengruppen gelöscht haben, die die Vorlage verwenden.

Console

  1. Rufen Sie in der Cloud Console die Seite Knoten für einzelne Mandanten auf.

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf Knotenvorlagen.

  3. Wählen Sie den Namen einer nicht verwendeten Knotenvorlage aus.

  4. Klicken Sie auf Löschen.

gcloud

Verwenden Sie den Befehl gcloud compute sole-tenancy node-templates delete, um eine nicht verwendete Knotenvorlage zu löschen:

gcloud compute sole-tenancy node-templates delete TEMPLATE_NAME \
  --region=REGION

Dabei gilt:

  • TEMPLATE_NAME: Der Name der zu löschenden Knotenvorlage

  • REGION: Region der Knotenvorlage.

API

Verwenden Sie die Methode compute.nodeTemplates.delete, um eine nicht verwendete Knotenvorlage zu löschen:

 DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates/TEMPLATE_NAME
 

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID

  • REGION: Die Google Cloud-Region, die die Knotenvorlage enthält.

  • TEMPLATE_NAME: Der Name der zu löschenden Knotenvorlage

Nächste Schritte