VM-Mandantenfähigkeit aktualisieren


Auf dieser Seite wird beschrieben, wie Sie die Mandantenfähigkeit einer VM durch Ändern der Knotenaffinitätslabels der VM aktualisieren.

Standardmäßig stellt Compute Engine VMs auf mehrmandantenfähigen Hosts bereit. Auf mehrmandantenfähigen Hosts teilen sich VMs normalerweise Hostressourcen mit VMs aus anderen Projekten und für andere Kunden. Wenn Sie eine VM auf einen Knoten für einzelne Mandanten verschieben, hat Ihr Projekt exklusiven Zugriff und die vollständige Kontrolle über die Hardware dieser Knoten. Da Sie der einzige Mandant auf diesem Knoten sind, sind Ihre Arbeitslasten von den Arbeitslasten und VMs anderer Projekte isoliert.

Durch Ändern der Knotenaffinitätslabels können Sie eine VM auf folgende Arten verschieben:

  • Von einem mehrmandantenfähigen Host zu einer Knotengruppe oder einem Knoten für einzelne Mandanten
  • Von einer Knotengruppe oder einem Knoten für einzelne Mandanten zu einem mehrmandantenfähigen Host
  • Von einem Knoten für einzelne Mandanten zu einem anderen Knoten oder einer anderen Knotengruppe für einzelne Mandanten
  • Von einer Knotengruppe für einzelne Mandanten zu einer anderen Knotengruppe oder einem anderen Knoten für einzelne Mandanten

Arbeitslasten vorübergehend auf Knoten für einzelne Mandanten verschieben

Aufgrund von schwankenden Anforderungen an Ihre Arbeitslasten, z. B. periodischer Bedarf an zusätzlicher Isolierung zur Leistungsüberprüfung oder Änderungen Ihrer Compliancevorschriften, müssen Sie möglicherweise bestimmte Arbeitslasten vorübergehend auf Knoten für einzelne Mandanten verschieben. Wenn Sie dann die Einzelmandantenfähigkeit nicht mehr benötigen, stellen Sie Ihre VMs noch einmal auf einem mehrmandantenfähigen Host bereit. Wenn Sie die Mandantenfähigkeit einer VM ändern, behält Compute Engine die Konfigurationen der VM bei.

Arbeitslasten für einzelne Mandanten ausgleichen

Neben dem Verschieben von VMs zu und von Knoten und Knotengruppen für einzelne Mandanten können Sie VMs zwischen Knoten und Knotengruppen verschieben, um Knoten zu konsolidieren und Arbeitslasten auszugleichen. Das Verschieben einer VM erfordert einen Neustart. Nehmen Sie daher die Verfügbarkeitsanforderungen Ihrer Arbeitslasten als Grundlage, wenn Sie den Verschiebevorgang für Ihre VMs planen.

Beschränkungen

  • Wenn Sie eine VM verschieben, die bereits auf einem Knoten für einzelne Mandanten ausgeführt wird, wird die VM möglicherweise auf einem anderen Knoten neu gestartet. Wenn die einzelnen Mandanten einer VM durch den Knotengruppennamen oder das Standardaffinitätslabel node-group-name angegeben werden, kann die VM auf jedem Knoten in der Knotengruppe neu gestartet werden. Wenn die einzelnen Mandanten der VM mit benutzerdefinierten Affinitätslabels für Affinität oder Anti-Affinität angegeben werden, kann die VM auf jedem Knoten einer beliebigen Knotengruppe in der Zone neu gestartet werden.

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 so bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

VM auf Knoten für einzelne Mandanten verschieben

Sie können die Mandantenfähigkeit einer VM aktualisieren. Dazu verschieben Sie die VM von einem Knoten bzw. einer Knotengruppe für einzelne Mandanten oder einem mehrmandantenfähigen Host zu einem bestimmten Knoten oder einer bestimmten Knotengruppe für einzelne Mandanten.

gcloud

  1. Beenden Sie die VM.

    gcloud compute instances stop VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die beendet werden soll.

  2. Aktualisieren Sie die Mandanten. Geben Sie dazu die Knotengruppe an, zu der die VM verschoben werden soll.

    gcloud compute instances set-scheduling VM_NAME \
        --node-group=NODE_GROUP_NAME
    

    Ersetzen Sie Folgendes:

    • VM_NAME: Name der VM, die zu einer bestimmten Knotengruppe verschoben werden soll

    • NODE_GROUP_NAME: Name der Knotengruppe, zu der die VM verschoben werden soll

    Alternativ können Sie eine VM auf einen Knoten für einzelne Mandanten verschieben, indem Sie den Namen des Knotens oder ein Affinitätslabel verwenden. Weitere Informationen finden Sie in der Dokumentation zum Befehl gcloud compute instances set-scheduling.

  3. Starten Sie die VM.

    gcloud compute instances start VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die in der Knotengruppe gestartet werden soll, die zuvor durch den Inhalt einer Affinitätslabeldatei angegeben wurde.

REST

  1. Halten Sie die VM an. Weitere Informationen zu diesem Befehl finden Sie unter instances.stop.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, das die zu beendende VM enthält

    • ZONE: Zone mit dem Projekt

    • VM_NAME: Name der VM, die beendet werden soll

  2. Aktualisieren Sie die Mandanten. Geben Sie dazu die Knotengruppe an, zu der die VM verschoben werden soll.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": [
        {
          "key": "compute.googleapis.com/node-group-name",
          "operator": "IN",
          "values": [
            "NODE_GROUP_NAME"
          ]
        }
      ]
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, das die zu verschiebende VM enthält

    • ZONE: Zone mit dem Projekt

    • VM_NAME: Name der VM, die zu einer bestimmten Knotengruppe verschoben werden soll

    • NODE_GROUP_NAME: Name der Knotengruppe, zu der die VM verschoben werden soll

    Alternativ können Sie eine VM auf einen Knoten für einzelne Mandanten verschieben, indem Sie den Namen des Knotens oder ein Affinitätslabel verwenden. Weitere Informationen finden Sie im Artikel zur Methode instances.setScheduling.

  3. Starten Sie die VM. Weitere Informationen zu diesem Befehl finden Sie unter instances.start.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, das die zu startende VM enthält

    • ZONE: Zone mit dem Projekt

    • VM_NAME: Name der zu startenden VM

VM von Knoten für einzelne Mandanten verschieben

Wenn Ihre VM keine dedizierte Hardware mehr benötigt, z. B. nach einem Ereignis, bei dem die VM von anderen VMs isoliert werden muss, verschieben Sie die VM von einem Knoten für einzelne Mandanten auf einen mehrmandantenfähigen Host.

gcloud

  1. Beenden Sie die VM.

    gcloud compute instances stop VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die beendet werden soll.

  2. Löschen Sie die Knotenaffinitäten aus der VM, damit Sie sie auf einen mehrmandantenfähigen Host verschieben können.

    gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
    

    Ersetzen Sie VM_NAME durch den Namen der VM, für die Sie die Knotenaffinitäten entfernen möchten.

  3. Starten Sie die VM auf einem mandantenfähigen Host.

    gcloud compute instances start VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, von der Sie zuvor die Knotenaffinitäten gelöscht haben.

REST

  1. Halten Sie die VM an. Weitere Informationen zu diesem Befehl finden Sie unter instances.stop.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, das die zu beendende VM enthält

    • ZONE: Zone mit dem Projekt

    • VM_NAME: Name der VM, die beendet werden soll

  2. Löschen Sie die Knotenaffinitäten der VM, um sie auf einen mandantenfähigen Host zu verschieben.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": []
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, das die zu verschiebende VM enthält

    • ZONE: Zone mit dem Projekt

    • VM_NAME: Name der VM, aus der Knotenaffinitäten gelöscht werden sollen

  3. Starten Sie die VM auf einem mandantenfähigen Host. Weitere Informationen zu diesem Befehl finden Sie unter instances.start.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, das die zu startende VM enthält

    • ZONE: Zone mit dem Projekt

    • VM_NAME: Name der zu startenden VM

Nächste Schritte