VMs auf Knoten für einzelne Mandanten bereitstellen

Auf dieser Seite wird beschrieben, wie Sie VM-Instanzen auf Knoten für einzelne Mandanten bereitstellen. Das sind physische Server, die für die Ausführung der VMs Ihres spezifischen Projekts vorgesehen sind. Lesen Sie vor der Bereitstellung von VMs auf Knoten für einzelne Mandanten die Übersicht über Knoten für einzelne Mandanten.

Das Bereitstellen von VMs auf Knoten für einzelne Mandanten umfasst Folgendes:

  1. Das Erstellen einer Knotenvorlage für einzelne Mandanten, um Knotenattribute anzugeben
  2. Das Erstellen einer Knotengruppe für einzelne Mandanten aus der Vorlage
  3. Das Erstellen von VMs zur Verwendung von Knoten für einzelne Mandanten

Vorbereitung

Vorlage für einen Knoten für einzelne Mandanten erstellen

Bevor Sie Knotengruppen erstellen und VMs für diese Gruppen bereitstellen können, müssen Sie eine Knotenvorlage für einzelne Mandanten erstellen. Eine Knotenvorlage ist eine regionale Ressource, die Knotenattribute für Knoten in Knotengruppen definiert, die aus der Vorlage erstellt werden.

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. Klicken Sie auf Knotenvorlage erstellen, um eine Knotenvorlage zu erstellen.

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

  5. Geben Sie eine Region an. Sie können die Knotenvorlage verwenden, um Knotengruppen in jeder Zone dieser Region zu erstellen.

  6. Geben Sie den Knotentyp für jeden Knoten für einzelne Mandanten in der Knotengruppe an, den Sie anhand dieser Knotenvorlage erstellen.

  7. Fügen Sie Affinitätslabels hinzu. Mit Affinitätslabels können Sie VMs anhand der einzelnen Mandanten planen. Knoten in Knotengruppen, die mit dieser Vorlage erstellt wurden, verwenden nur diese Affinitätslabels. Sie können Affinitätslabels nicht separat zu einer Knotengruppe hinzufügen. Weitere Informationen finden Sie unter Knotenaffinität und Anti-Affinität.

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

gcloud

  1. Verwenden Sie den Befehl compute sole-tenancy node-types list, um eine Liste der Knotentypen für einzelne Mandanten abzurufen, die in jeder Google Cloud-Zone verfügbar sind.

    gcloud compute sole-tenancy node-types list
    
  2. Verwenden Sie den Befehl compute sole-tenancy node-templates create, um durch Angabe des Knotentyps eine neue Knotenvorlage zu erstellen:

    gcloud compute sole-tenancy node-templates create template-name \
      --region=region \
      --node-type=node-type \
      --node-affinity-labels=affinity-labels \
      --server-binding=server-binding
    

    Ersetzen Sie Folgendes:

    • template-name: Name der neuen Knotenvorlage.
    • region: Die Region, in der Sie diese Vorlage verwenden.

    • node-type: Der Knotentyp für diese Vorlage. Sie können beispielsweise den Knotentyp n2-node-80-640 auswählen, um einen Knoten mit 80 vCPUs und 624 GB Arbeitsspeicher zu erstellen.

    • affinity-labels: Schlüssel und Werte für Affinitätslabels. Mit Affinitätslabels können Sie VM-Instanzen anhand einzelner Mandanten planen. Knoten in Knotengruppen, die mit dieser Vorlage erstellt wurden, verwenden nur diese Affinitätslabels. Sie können Affinitätslabels nicht separat zu einer Knotengruppe hinzufügen. Weitere Informationen finden Sie unter Knotenaffinitätslabels.

    • server-binding: Steuert, wie Google Cloud Knoten physischen Servern zuordnet. Geben Sie restart-node-on-any-server an oder lassen Sie das Flag server-binding weg, damit Google Cloud jedem physischen Server ermöglichen kann, nach einem Knotenwartungsereignis als Knoten zu handeln. Geben Sie restart-node-on-minimal-servers an, um Google Cloud dazu zu zwingen, denselben physischen Server für den Knoten zu verwenden. Weitere Informationen finden Sie unter --server-binding.

API

  1. Verwenden Sie die Methode compute.nodeTypes.list, um eine Liste der Knotentypen abzurufen:

    GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeTypes
    

    Dabei gilt:

    • project-id: Ihre Projekt-ID
    • zone: Die Google Cloud-Zone, aus der die verfügbaren Knotentypen abgerufen werden sollen.
  2. Verwenden Sie die Methode compute.nodeTemplates.insert, um eine Knotenvorlage zu erstellen, die einen Knotentyp verwendet:

    POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/nodeTemplates
    
        {
         "name": "template-name",
         "nodeType": "node-type",
         "nodeAffinityLabels": {
             "key": "value",
             ....
         },
         "serverBinding":
         {
             "type": "server-binding"
         }
        }
    

    Dabei gilt:

    • project-id: Ihre Projekt-ID.
    • region: Die Google Cloud-Region, in der die Knotenvorlage erstellt werden soll. Mit dieser Vorlage können Sie Knotengruppen in jeder Zone dieser Region erstellen.
    • template-name: Der Name der zu erstellenden Knotenvorlage.

    • node-type: Der Knotentyp für diese Vorlage. Sie können beispielsweise den Knotentyp n2-node-80-640 auswählen, um einen Knoten mit 80 vCPUs und 640 GB Arbeitsspeicher zu erstellen.

    • Verwenden Sie nodeAffinityLabels, um key- und value-Paare anzugeben, die Knotenaffinitätslabels definieren. Mit diesen können Sie VM-Instanzen anhand einzelner Mandanten planen. Knoten in Knotengruppen, die mit dieser Vorlage erstellt wurden, verwenden nur diese Affinitätslabels. Sie können Affinitätslabels nicht separat zu einer Knotengruppe hinzufügen. Weitere Informationen finden Sie unter Knotenaffinitätslabels.

    • server-binding: Damit steuern Sie, wie Google Cloud physischen Servern Knoten zuordnet. Geben Sie restart-node-on-any-server an oder lassen Sie den Parameter serverBinding weg, damit Google Cloud jedem physischen Server ermöglichen kann, nach einem Knotenwartungsereignis als Knoten zu handeln. Geben Sie restart-node-on-minimal-servers an, um Google Cloud dazu zu zwingen, denselben physischen Server für den Knoten zu verwenden. Weitere Informationen finden Sie unter --server-binding.

Knotengruppe für einzelne Mandanten erstellen

Nachdem Sie eine Knotenvorlage erstellt haben, erstellen Sie eine Knotengruppe anhand dieser Vorlage. Beim Erstellen einer Knotengruppe müssen Sie die folgenden Werte angeben, die für jeden Knoten in der Gruppe gelten:

  • Region: Wählen Sie die Region mit der Knotenvorlage aus, die auf die Knotengruppe angewendet werden soll.

  • Zone: Wählen Sie die Zone innerhalb der Region aus, in der Sie die Knotengruppe erstellen möchten.

  • Knotenvorlage: Wählen Sie die Knotenvorlage aus, aus der Sie die Knotengruppe erstellen möchten.

  • Anzahl von Knoten: Geben Sie die Anzahl von Knoten für einzelne Mandanten an, die in der Knotengruppe erstellt werden sollen, und verwenden Sie das Autoscaling für Knotengruppen, um die Größe Ihrer Knotengruppen zu verwalten. Je nach Anzahl von erstellten Knoten müssen Sie unter Umständen zusätzliche Kontingente anfordern. Wenn Sie beispielsweise eine Knotengruppe der Größe 2 erstellen und n2-node-80-640 als Knotentyp auswählen, benötigen Sie ein vCPU-Kontingent von mindestens 160.

  • Wartungsrichtlinie: Geben Sie die Wartungsrichtlinie für VMs während Hostwartungsereignissen an. Wählen Sie aus, ob VMs auf dem Host live auf einen neuen physischen Server migriert werden, live im Pool physischer Server, die von der Knotengruppe verwendet werden, migriert werden oder auf demselben physischen Server beendet und neu gestartet werden. Verwenden Sie die Standardwartungsrichtlinie, es sei denn, Sie haben Affinitätsanforderungen an physische Server, etwa wenn Sie Softwarelizenzen haben, die pro physischem Kern bewertet werden.

  • Automatisch skalierte Knotengruppen: Aktivieren Sie das Autoscaling für Knotengruppen, damit die Anzahl von Knoten in Ihrer Knotengruppe automatisch erhöht oder verringert wird.

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 Sie die Knotengruppe ausführen möchten.

  6. Geben Sie die zu verwendende Knotenvorlage an. In der ausgewählten Region muss eine Knotenvorlage vorhanden sein.

  7. Geben Sie die Anzahl der in der Gruppe auszuführenden Knoten an. Sie können diesen Wert später manuell ändern oder das Autoscaling für Knotengruppen aktivieren. Das Autoscaling für Knotengruppen befindet sich derzeit in der Betaphase.

  8. Geben Sie die Wartungsrichtlinie an:

    • Standard: Migriert die VM live zu einem neuen physischen Server.
    • Vor Ort Neu starten: Startet VMs auf demselben physischen Server neu.
    • Innerhalb der Knotengruppe migrieren: Migriert die VM innerhalb der Knotengruppe.
  9. Klicken Sie auf Erstellen, um das Erstellen der Knotengruppe abzuschließen.

gcloud

Führen Sie den folgenden Befehl aus, um eine Knotengruppe anhand einer zuvor erstellten Knotenvorlage zu erstellen:

gcloud compute sole-tenancy node-groups create group-name \
  --zone=zone \
  --node-template=template-name \
  --target-size=target-size \
  --maintenance-policy=maintenance-policy \
  --autoscaler-mode=autoscaler-mode \
  --min-nodes=min-nodes \
  --max-nodes=max-nodes

Dabei gilt:

  • group-name: Name der neuen Knotengruppe.
  • zone: Zone, in der die Knotengruppe erstellt werden soll. Dies muss dieselbe Region sein wie bei der Knotenvorlage, auf der Sie die Knotengruppe aufbauen.
  • template-name: Name der Knotenvorlage, die zum Erstellen dieser Gruppe verwendet werden soll.
  • target-size: Anzahl von Knoten, die in der Gruppe erstellt werden sollen.
  • maintenance-policy: Wartungsrichtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein:
      .
    • default: VMs werden live auf einen neuen physischen Server migriert.
    • migrate-within-node-group: VMs werden live zu einem anderen Knoten in der Knotengruppe migriert. Diese Richtlinie befindet sich in der Betaphase und muss mit dem Befehl gcloud beta compute sole-tenancy node-groups create angegeben werden.
    • restart-in-place: VMs werden nach dem Wartungsereignis auf demselben physischen Server beendet und neu gestartet.
  • autoscaler-mode: Autoscaling-Richtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein:
      .
    • off: Deaktiviert das Autoscaling in der Knotengruppe.
    • on: Aktiviert das Autoscaling in und außerhalb der Knotengruppe.
    • only-scale-out: Aktiviert Autoscaling nur außerhalb.
  • 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

Nachdem Sie die Knotenvorlage erstellt haben, erstellen Sie eine Knotengruppe. Verwenden Sie die Methode nodeGroups.insert, um eine Knotengruppe zu erstellen:

POST https://www.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, "autoscalingPolicy": { "mode": autoscaler-mode, "minNodes": min-nodes, "maxNodes": max-nodes }, }

Dabei gilt:

  • project-id: ID des Projekts.
  • zone: Zone, in der die Knotengruppe erstellt werden soll. Muss sich in derselben Region wie die Knotenvorlage befinden, auf der Sie die Knotengruppe aufbauen.
  • target-size: Anzahl von Knoten, die in der Gruppe erstellt werden sollen.
  • region: Region, in der sich die Knotenvorlage befindet, die auf dieser Knotengruppe aufbauen soll.
  • template-name: Name der Knotenvorlage, die zum Erstellen dieser Gruppe verwendet werden soll.
  • group-name: Name der neuen Knotengruppe.
  • maintenance-policy: Wartungsrichtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein:
      .
    • DEFAULT: VMs folgen während Hostwartungsereignissen dem herkömmlichen Wartungsverhalten und können live zu einem neuen Host migriert werden, wenn die VM so konfiguriert ist, dass sie während Hostwartungsereignissen migriert wird. VMs, die nicht so eingestellt wurden, dass sie während Hostwartungsereignissen migriert werden, werden beendet.
    • MIGRATE_WITHIN_NODE_GROUP: VMs werden live zu einem anderen Knoten in der Knotengruppe migriert. Diese Richtlinie befindet sich in der Betaphase und muss mit dem Befehl gcloud beta compute sole-tenancy node-groups create angegeben werden.
    • RESTART_IN_PLACE: VMs werden nach dem Wartungsereignis auf demselben physischen Server beendet und neu gestartet.
  • autoscaler-mode: Autoscaling-Richtlinie für die Knotengruppe. Dies muss einer der folgenden Werte sein:
      .
    • OFF: Deaktiviert das Autoscaling in der Knotengruppe.
    • ON: Aktiviert das Autoscaling in und außerhalb der Knotengruppe.
    • ONLY_SCALE_OUT: Aktiviert Autoscaling nur außerhalb.
  • max-nodes: Maximale Größe der Knotengruppe. Muss kleiner oder gleich 100 und größer oder gleich min- nodes sein. Muss angegeben werden, wenn autoscaler-mode nicht auf off eingestellt ist.
  • min-nodes: Minimale Größe der Knotengruppe. Der Standardwert ist 0 und muss eine Ganzzahl kleiner oder gleich max-nodes sein.

Einzelne VMs auf einem Knoten für einzelne Mandanten bereitstellen

Nachdem Sie eine Knotengruppe anhand einer Knotenvorlage erstellt haben, können Sie einzelne VMs direkt auf einem Knoten oder einer Knotengruppe für einzelne Mandanten bereitstellen. Verwenden Sie dazu einen vordefinierten Maschinentyp oder einen benutzerdefinierten Maschinentyp mit mindestens zwei vCPUs. Wenn Sie eine VM auf diese Weise bereitstellen, weist Compute Engine automatisch Affinitätslabels anhand des Knotens oder der Knotengruppe zu, auf der Sie die VM bereitstellen.

Im Folgenden wird beschrieben, wie Sie eine einzelne VM in einer Knotengruppe bereitstellen.

Console

  • Knotenaffinitätslabels verwenden: Folgen Sie dem Standardverfahren zum Erstellen einer VM-Instanz. Verwenden Sie dabei die Cloud Console, um eine neue VM-Instanz anhand von Affinitätslabeln mit einem Knoten für einzelne Mandanten zu verknüpfen.

  • Alternativ können Sie auch auf der Detailseite der Knotengruppe eine VM-Instanz erstellen:

    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, in der eine VM-Instanz bereitgestellt werden soll.

    4. Klicken Sie auf Instanz erstellen, um eine VM-Instanz in dieser Knotengruppe bereitzustellen, und notieren Sie sich die Werte, die von Compute Engine automatisch auf Region, Zone, Maschinenkonfiguration, Knotenaffinitätslabels, Bei Hostwartung und Automatischer Neustart angewendet werden. Ändern Sie dann die Werte entsprechend den Anforderungen Ihrer Arbeitslast.

    5. Klicken Sie dann auf Erstellen, um das Erstellen der Instanz abzuschließen.

gcloud

Stellen Sie mit dem folgenden Befehl eine VM mit einem benutzerdefinierten Maschinentyp in einer Knotengruppe bereit:

gcloud compute instances create vm-name \
  --zone=zone \
  --image-family=image-family \
  --image-project=image-project \
  --node-group=group-name \
  --custom-cpu=vcpus \
  --custom-memory=memory \
  --maintenance-policy=maintenance-policy \
  --restart-on-failure

Dabei gilt:

  • vm-name: Name der neuen VM.
  • zone: Zone, in der die neue VM erstellt werden soll.
  • image-family: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden soll.
  • image-project: Image-Projekt, zu dem die Image-Familie gehört.
  • group-name: Name der Knotengruppe, in der die VM bereitgestellt werden soll.
  • vcpus: Anzahl von vCPUs, die mit dieser VM verwendet werden sollen.
  • memory: Arbeitsspeicher in Schritten von 256 MB. Beispiel: 5,25 GB oder 5.376 MB.
  • maintenance-policy: Gibt das Verhalten von VMs bei Wartungsarbeiten an. Legen Sie dafür einen der folgenden Werte fest:
      .
    • MIGRATE: VMs, die zum neuen Host migriert wurden.
    • TERMINATE: Beendete VMs.
  • --restart-on-failure: Parameter, der angibt, ob VMs neu gestartet werden sollen, nachdem sie beendet wurden. Verwenden Sie zum Deaktivieren --no-restart-on- failure.

API

Stellen Sie mit der folgenden REST-Anfrage instances.insert eine VM mit einem benutzerdefinierten Maschinentyp in einer Knotengruppe bereit:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances
{ "machineType": "zones/zone/machineTypes/custom-vcpus-memory", "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" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/image-project/global/images/family/image-family" } } ] }

Dabei gilt:

  • project-id: ID des Projekts.
  • zone: Zone, in der die neue VM erstellt werden soll.
  • vcpus: Anzahl von vCPUs, die mit dieser VM verwendet werden sollen.
  • memory: Arbeitsspeicher in Schritten von 256 MB. Beispiel: 5,25 GB oder 5.376 MB.
  • vm-name: Name der neuen VM.
  • maintenance-policy: Gibt das Verhalten von VMs bei Wartungsarbeiten an. Legen Sie dafür einen der folgenden Werte fest:
      .
    • MIGRATE: VMs, die zum neuen Host migriert wurden.
    • TERMINATE: Beendete VMs.
  • restart-on-failure: Parameter, der angibt, ob VMs neu gestartet werden sollen, nachdem sie beendet wurden. Der Standardwert ist true.
  • group-name: Name der Knotengruppe, in der die VM bereitgestellt werden soll.
  • network: URL des Netzwerks für diese VM.
  • region: Region mit dem Subnetzwerk für diese VM.
  • subnetwork: URL des Subnetzwerks für diese VM.
  • image-project: Image-Projekt, zu dem die Image-Familie gehört.
  • image-family: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden soll.

Mehrere VMs auf einem Knoten für einzelne Mandanten bereitstellen

Wenn Sie mehrere identische VMs gleichzeitig auf einem Knoten oder in einer Knotengruppe bereitstellen möchten, verwenden Sie verwaltete Instanzgruppen (Managed Instance Groups – MIGs) und geben Sie mit einem Affinitätslabel an, auf welchem Knoten oder in welcher Knotengruppe für einzelne Mandanten die Instanzgruppe ausgeführt wird.

Verwenden Sie zur automatischen Verwaltung der Größe einer verwalteten Instanzgruppe das MIG-Autoscaling und zur automatischen Verwaltung der Größe von Knotengruppen das Autoscaling für Knotengruppen.

Der folgende Befehl zeigt, wie Sie eine verwaltete Instanzgruppe mit einem benutzerdefinierten Maschinentyp erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine MIG-Vorlage in Ihrer Knotengruppe:

    gcloud compute instance-templates create instance-template \
    --image-family=image-family \
    --image-project=image-project \
    --node-group=group-name \
    --custom-cpu=vcpus \
    --custom-memory=memory
    

    Dabei gilt:

    • instance-template: Name für die neue Instanzvorlage.
    • image-family: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden muss.
    • image-project: Image-Projekt, zu dem die Image-Familie gehört.
    • group-name: Name der Knotengruppe, in der die VM bereitgestellt werden soll.
    • vcpus: Anzahl von vCPUs, die mit dieser VM verwendet werden sollen.
    • memory: Arbeitsspeicher in Schritten von 256 MB. Beispiel: 5,25 GB oder 5.376 MB.
  2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine Instanzgruppe:

    gcloud compute instance-groups managed create instance-group-name --zone zone --size size --template instance-template
    

    Dabei gilt:

    • instance-group-name: Name für diese Instanzgruppe.
    • zone: Zone, in der die verwaltete Instanzgruppe erstellt werden soll.
    • size: Anzahl von VMs, die in dieser Instanzgruppe enthalten sein sollen. Ihre Knotengruppe muss genügend Ressourcen haben, um die Instanzen in dieser verwalteten Instanzgruppe unterzubringen.
    • instance-template: Name der Instanzvorlage, die zum Erstellen dieser Gruppe verwendet werden soll. Die Vorlage benötigt eine Knotenaffinität, die auf die geeignete Knotengruppe verweist.

API

  1. Erstellen Sie mit der REST-Anfrage instanceTemplates.insert eine MIG-Vorlage in Ihrer Knotengruppe:

    POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instance-templates
    { "name": "template-name", "properties": { "machineType": "custom-vcpus-memory", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "group-name" ] } ] }, "networkInterfaces": [ { "network": "global/networks/network", "subnetwork": "regions/region/subnetworks/subnetwork" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/image-project/global/images/family/image-family" } } ] } }

    Dabei gilt:

    • project-id: ID des Projekts.
    • zone: Zone, in der die neue Instanzvorlage erstellt werden soll.
    • template-name: Name für die neue Instanzvorlage.
    • vcpus: Anzahl von vCPUs, die für jede VM in der Instanzgruppe verwendet werden sollen.
    • memory: Arbeitsspeicher in Schritten von 256 MB für jede VM in der Instanzgruppe. Beispiel: 5,25 GB oder 5.376 MB.
    • group-name: Name der Knotengruppe, in der die VM bereitgestellt werden soll.
    • network: URL des Netzwerks für diese VM.
    • region: Region mit dem Subnetzwerk für diese VM.
    • subnetwork: URL des Subnetzwerks für diese VM.
    • image-project: Image-Projekt, zu dem die Image-Familie gehört.
    • image-family: Image-Familie mit dem Image, das zum Erstellen der VM verwendet werden muss.
  2. Erstellen Sie eine Instanzgruppe mit demBefehl instanceGroupManagers.create:

    POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers
    {
     "baseInstanceName": "name-prefix",
     "name": "instance-group-name",
     "targetSize": sizevar>,
     "instanceTemplate": "global/instanceTemplates/instance-template"
    }
    

    Dabei gilt:

    • project-id: ID des Projekts.
    • zone: Zone, in der die verwaltete Instanzgruppe erstellt werden soll.
    • name-prefix: Präfixname für jede Instanz in Ihrer verwalteten Instanzgruppe.
    • instance-group-name: Name für diese Instanzgruppe.
    • size: Anzahl von VMs, die in dieser Instanzgruppe enthalten sein sollen. Ihre Knotengruppe muss genügend Ressourcen haben, um die Instanzen in dieser verwalteten Instanzgruppe unterzubringen.
    • instance-template: Name der Instanzvorlage, die Sie zum Erstellen dieser Gruppe verwenden möchten. Die Vorlage benötigt eine Knotenaffinität, die auf die geeignete Knotengruppe verweist.

Beispiel für Instanzaffinität

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 dafür, wie Sie Affinitätslabels verwenden, um VMs mit einer bestimmten Knotengruppe zu verknüpfen:

gcloud

  1. Erstellen Sie eine Knotenvorlage mit einem Satz von Affinitätslabels für eine Produktionsarbeitslast:

    gcloud compute sole-tenancy node-templates create production-template --node-type=n2-node-80-640 --node-affinity-labels workload=frontend,environment=prod
    
  2. Erstellen Sie eine weitere Knotenvorlage mit einem Satz von Affinitätslabels für die Entwicklungsarbeitslast:

    gcloud compute sole-tenancy node-templates create development-template --node-type=n2-node-80-640 --node-affinity-labels workload=frontend,environment=dev
    
  3. Erstellen Sie mehrere Knotengruppen mit den Produktions- und Entwicklungsvorlagen. Beispiel: Sie haben eine große Knotengruppe für die Produktion und mehrere kleinere für die Entwicklung. Optional könnten Sie diese Gruppen in verschiedenen Zonen und mit unterschiedlichen Zielgrößen erstellen, um den Umfang der Arbeitslasten zu berücksichtigen:

    gcloud compute sole-tenancy node-groups create production-group --node-template production-template --target-size 5 --zones us-west1-b
    
    gcloud compute sole-tenancy node-groups create development-group-east1 --node-template development-template --target-size 1 --zones us-east1-d
    
    gcloud compute sole-tenancy node-groups create development-group-east2 --node-template development-template --target-size 1 --zones us-east1-d
    
  4. Erstellen Sie für Produktions-VMs eine Datei node-affinity-prod.json, um die Affinität Ihrer Produktions-VMs anzugeben. Sie können etwa eine Datei erstellen, mit der VMs so konfiguriert werden, dass sie nur auf Knoten mit den beiden Affinitäten workload=frontend und environment=prod ausgeführt werden können:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Erstellen Sie mit der Datei node-affinity-prod.json eine MIG-Vorlage mit den Attributen, die Sie für Ihre VM-Produktions-VMs benötigen:

    gcloud compute instance-templates create production-template --image-family production-images --image-project my-project --node-affinity-file node-affinity-prod.json --custom-cpu 3 --custom-memory 4096
    
  6. Starten Sie mit der MIG-Produktionsvorlage eine Instanzgruppe, die auf dem Produktionsknoten ausgeführt wird:

    gcloud compute instance-groups managed create production-group --zone us-west1-b --size 4 --template production-template
    

    Zu diesem Zeitpunkt werden die VMs in der Gruppe nur in den Knotengruppen mit den Affinitäten workload=frontend und environment=prod gestartet und ausgeführt.

Beispiel für Instanz-Anti-Affinität

Verwenden Sie Anti-Affinitätslabels, damit Ihre VMs nicht auf Knoten bereitgestellt werden. Sie können etwa einige VMs zu Entwicklungszwecken erstellen, aber Compute Engine daran hindern, sie auf denselben Knoten zu planen, auf denen Ihre Produktions-VMs gehostet werden. Das folgende Verfahren ist ein Beispiel dafür, wie Sie mit Affinitätslabels dafür sorgen können, dass VMs nicht mit bestimmten Knotengruppen verknüpft werden:

gcloud

  1. Erstellen Sie für Entwicklungsinstanzen eine node-affinity-dev.json-Datei, um die Affinität Ihrer Entwicklungs-VMs anzugeben. 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",
        "values" : ["prod"]
      }
    ]
    
  2. Für die Entwicklung könnten Sie zur Durchführung von Tests statt einer gesamten Instanzgruppe eine einzelne VM erstellen. Erstellen Sie die Datei node-affinity-dev.json, um diese VM zu erstellen. Wenn Sie beispielsweise ein bestimmtes Entwicklungs-Image mit dem Namen development-image-1 testen möchten, erstellen Sie die VM und konfigurieren Sie ihre Affinitäten mit dem folgenden Befehl:

    gcloud compute instances create dev-1 --image development-image-1 --image-project my-project --node-affinity-file node-affinity-dev.json --custom-cpu 3 --custom-memory 4096 --zone us-east1-d
    

    Die Instanz wird gestartet und nur in den Knotengruppen mit workload=frontend ausgeführt. Diese VM wird jedoch nicht in allen Knotengruppen ausgeführt, die mit der Affinität environment=prod affinity konfiguriert sind.

Knotenvorlage löschen

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

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

Dabei gilt:

  • project-id: Ihre Projekt-ID
  • region: Die Google Cloud-Region, die die Knotenvorlage enthält.
  • template-name: Der Name der zu löschenden Knotenvorlage.

Knotengruppe löschen

Sie können eine Knotengruppe löschen, sofern keine VM-Instanzen auf ihren Knoten ausgeführt werden.

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. Achten Sie darauf, dass keine VM-Instanzen auf dem Knoten ausgeführt werden.

  4. Sie können einzelne VM-Instanzen auf der Seite "Knotendetails" löschen oder dem Standardverfahren zum Löschen einer einzelnen VM-Instanz folgen. Wenn Sie Instanzen in einer verwalteten Instanzgruppe löschen möchten, müssen Sie die verwaltete Instanzgruppe löschen.

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

    Zur Seite Knoten für einzelne Mandanten

  6. Klicken Sie auf Knotengruppen.

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

  8. Klicken Sie auf Löschen.

gcloud

  1. Listen Sie mit dem Befehl 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
    

    Dabei gilt:

    • group-name: Der Name der Knotengruppe.
    • zone: Die Zone der Knotengruppe.
  2. Wenn in der Knotengruppe VM-Instanzen ausgeführt werden, folgen Sie je nach Bedarf dem Standardverfahren zum Löschen einer einzelnen VM-Instanz oder dem Standardverfahren zum Löschen einer verwalteten Instanzgruppe.

  3. Nachdem Sie alle VM-Instanzen gelöscht haben, die auf allen Knoten der Knotengruppe ausgeführt werden, löschen Sie die Knotengruppe mit dem Befehl compute sole-tenancy node-groups delete:

    gcloud compute sole-tenancy node-groups delete group-name \
     --zone=zone
    

    Dabei gilt:

    • group-name: Der Name der Knotengruppe.
    • zone: Die Zone der Knotengruppe.

Weitere Informationen