Knoten für einzelnen Mandanten erstellen

Erstellen Sie Knoten für einzelne Mandanten, um Ihre Instanzen physisch von den Instanzen anderer Projekte zu trennen. Jeder Knoten ist einem physischen Server zugeordnet und ist jeweils der einzige Knoten, der auf diesem Server ausgeführt wird. Innerhalb Ihrer Knoten können Sie mehrere Instanzen unterschiedlicher Größe ausführen, ohne die Hosthardware mit anderen Projekten zu teilen. Knoten können per Livemigration auf ein neues Hostsystem verschoben werden, ohne dass die VM-Hostinstanzen beendet werden müssen.

Unter Preise für Knoten für einzelne Mandanten können Sie nachlesen, wie Preise und Rabatte für diese Knoten berechnet werden.

In der Übersicht zu Knoten für einzelne Mandanten finden Sie Informationen zu den Vorteilen, Anwendungsfällen und Funktionen dieser Knoten.

Hinweise

Beschränkungen

Bevor Sie Knoten für einzelne Mandanten erstellen und verwenden, lesen Sie in der Übersicht den Abschnitt Beschränkungen.

Knoten für einzelne Mandanten erstellen und verwenden

Im Allgemeinen sind für das Erstellen von Instanzen auf Knoten für einzelne Mandanten folgende Schritte erforderlich:

  1. Erstellen Sie eine Knotenvorlage, in der Sie den Knotentyp oder die vCPU- und Speicheranforderungen festlegen. Geben Sie außerdem eine Region und optionale Knotenaffinitätslabels an.
  2. Verwenden Sie die Vorlage, um eine Knotengruppe mit einem oder mehreren Knoten für einzelne Mandanten zu erstellen. Sie können die Anzahl der Knoten auf null reduzieren, wenn Sie sie nicht mehr benötigen.
  3. Erstellen Sie Instanzen in den Knotengruppen:
    • Erstellen Sie in der Knotengruppe einzelne VM-Instanzen mit einem beliebigen vordefinierten oder benutzerdefinierten Maschinentyp. Der Maschinentyp benötigt mindestens zwei vCPUs.
    • Erstellen Sie mit einer Instanzvorlage verwaltete Instanzgruppen in der Knotengruppe. Die Autoscaling-Funktion kann zwar die Größe einer verwalteten Instanzgruppe auf den Knoten, aber nicht die Größe der Knotengruppe steuern.

Knotengruppen und Instanzen erstellen

Erstellen Sie eine Knotenvorlage, um die Attribute der Knoten in einer Knotengruppe festzulegen. Nachdem Sie die Vorlage erstellt haben, können Sie damit eine oder mehrere Knotengruppen erstellen. Erstellen Sie anschließend neue Instanzen in diesen Knotengruppen.

Konsole

Erstellen Sie über die Google Cloud Platform-Konsole einen Knoten und zugehörige Instanzen:

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

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf Knotenvorlage erstellen, um eine Knotenvorlage zu erstellen.
  3. Geben Sie die Region an, in der Sie die Knotengruppe ausführen möchten.
  4. Geben Sie den gewünschten Knotentyp für die Knotengruppen an. Sie können alternativ auch den kleinsten verfügbaren Knoten angeben. Dadurch können Knotengruppen mit jedem verfügbaren Knotentyp ausgeführt werden.
  5. Fügen Sie dann optional Labels für Knotenaffinitäten hinzu. Damit definieren Sie, welche Instanzen sich automatisch in den Knotengruppen einplanen. Wenn Sie die Labels hier frei lassen, können Sie die Einplanung von Instanzen später über den Namen von Knotengruppen oder von einem einzelnen Knoten vornehmen.
  6. Klicken Sie auf Erstellen, um die Erstellung der Knotenvorlage abzuschließen.

Mit der Knotenvorlage können Sie nun eine Knotengruppe erstellen.

  1. Rufen Sie dafür die Seite für 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 die Zone an, in der Sie die Knotengruppe ausführen möchten. Es ist notwendig, dass sich in derselben Region eine Knotenvorlage befindet.
  4. Geben Sie die zu verwendende Knotenvorlage an.
  5. Geben Sie dann die Anzahl der in der Gruppe auszuführenden Knoten an. Diese Zahl können Sie später ändern.
  6. Klicken Sie auf Erstellen, um die Erstellung der Knotengruppe abzuschließen.

Erstellen Sie nun eine Instanz, die in der Knotengruppe oder auf bestimmten Knoten ausgeführt wird. Wenn Sie oben bestimmte Labels für Knotenaffinitäten angegeben haben, können Sie ganz normal eine Instanz erstellen und die Knotenaffinität in den Einstellungen für einzelne Mandanten angeben. Erstellen Sie in diesem Beispiel die Instanzen direkt auf der Detailseite der Knotengruppe.

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

    Zur Seite "Knoten für einzelne Mandanten"

  2. Klicken Sie auf den Namen der Knotengruppe, in der Sie eine Instanz erstellen möchten.
  3. Klicken Sie dann auf Instanz erstellen, damit Sie in dieser Knotengruppe eine Instanz erstellen können. Wenn Sie möchten, dass die Instanz auf einem bestimmten Knoten in der Gruppe ausgeführt wird, klicken Sie auf den Namen eines einzelnen Knotens in der Gruppe, um weitere Details zu diesem Knoten aufzurufen. Klicken Sie dann auf Instanz erstellen, damit Sie die Instanz auf dem bestimmten Knoten erstellen können.
  4. Konfigurieren Sie nun die Einstellungen für die Instanz. Da Sie die Knotengruppe bzw. einen bestimmten Knoten bereits ausgewählt haben, sind die Knotenaffinitäts-Labels für Region, Zone und Standard bereits angegeben.
  5. Klicken Sie dann auf Erstellen, um die Erstellung der Instanz abzuschließen.

gcloud

So können Sie mit dem gcloud-Befehlszeilentool Knoten und zugehörige Instanzen erstellen:

  1. Ermitteln Sie zuerst mit dem Befehl compute sole-tenancy node-types list die verfügbaren Knotentypen:

    gcloud compute sole-tenancy node-types list
    

    Ältere Knotentypen werden in Compute Engine in regelmäßigen Abständen durch neuere Knotentypen ersetzt. Wenn ein Knotentyp ersetzt wird, können Sie keine Knotengruppen mit dem alten Knotentyp erstellen. Daher ist es erforderlich, dass Sie die Knotenvorlagen entsprechend aktualisieren.

  2. Erstellen Sie jetzt mit dem Befehl compute sole-tenancy node-templates create eine neue Knotenvorlage. Da sich die Liste der verfügbaren Knotentypen im Laufe der Zeit ändert, sollten Sie die Knotenvorlagen so konfigurieren, dass sie flexible Anforderungen für Knotentypen verwenden. Geben Sie beispielsweise --node-requirements vCPU=any,memory=any,localSSD=0 an, damit der Knoten auf jedem verfügbaren Knotentyp ohne lokale SSD-Kapazität ausgeführt werden kann.

    gcloud compute sole-tenancy node-templates create [TEMPLATE_NAME] \
        --region [REGION] --node-requirements vCPU=any,memory=any,localSSD=0
    

    Dabei gilt:

    • [TEMPLATE_NAME] ist der Name der neuen Knotenvorlage.
    • [REGION] ist die Region, in der Sie diese Vorlage verwenden.

    Alternativ können Sie einen bestimmten Knotentyp auswählen, der in Ihrer Vorlage verwendet werden soll. Die Vorlage ist dann zwar weniger flexibel, doch Knoten werden in diesem Fall nur dann erstellt, wenn sie Ihren vCPU- und Arbeitsspeicheranforderungen genau entsprechen.

     gcloud compute sole-tenancy node-templates create [TEMPLATE_NAME] \
         --node-type [NODE_TYPE] --region [REGION]
    

    Dabei gilt:

    • [TEMPLATE_NAME] ist der Name der neuen Knotenvorlage.
    • [NODE_TYPE] ist der Knotentyp, den Sie für diese Vorlage verwenden möchten. Sie können beispielsweise den Knotentyp n1-node-96-624 angeben, damit Sie einen Knoten mit 96 vCPUs und einem Arbeitsspeicher von 624 GB erstellen können.
    • [REGION] ist die Region, in der Sie diese Vorlage verwenden.
  3. Nachdem Sie die Knotenvorlage erstellt haben, erstellen Sie eine Knotengruppe. Verwenden Sie dazu den Befehl compute sole-tenancy node-groups create:

    gcloud compute sole-tenancy node-groups create [GROUP_NAME] --zone [ZONE] \
        --node-template [TEMPLATE_NAME] --target-size [TARGET_SIZE]
    

    Dabei gilt:

    • [GROUP_NAME] ist der Name der neuen Knotengruppe.
    • [ZONE] ist die Zone, in der sich diese Knotengruppe befindet. Diese Zone muss sich in derselben Region befinden wie die von Ihnen verwendete Knotenvorlage.
    • [TEMPLATE_NAME] ist der Name der Knotenvorlage, die Sie zum Erstellen dieser Gruppe verwenden möchten.
    • [TARGET_SIZE] ist die Anzahl der Knoten, die Sie in der Gruppe erstellen möchten.
  4. Nachdem Sie die Knotengruppe erstellt haben, können Sie in den Knotengruppen mit dem Befehl compute instances create Instanzen erstellen. Geben Sie das Flag --node-group an, das auf den Knotengruppennamen verweist. Sie können beispielsweise eine Instanz mit einem benutzerdefinierten Maschinentyp erstellen:

    gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] \
        --image-family [IMAGE_FAMILY] --image-project [IMAGE_PROJECT] \
        --node-group [GROUP_NAME] --custom-cpu [VCPUS] --custom-memory [MEMORY]
    

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der neuen Instanz.
    • [ZONE] ist die Zone, in der sich die Knotengruppe befindet.
    • [IMAGE_FAMILY] ist eine der verfügbaren Image-Familien.
    • [IMAGE_PROJECT] ist das Image-Projekt, zu dem diese Image-Familie gehört.
    • [GROUP_NAME] ist der Name der Knotengruppe, in der diese Instanz erstellt werden soll.
    • [VCPUS] ist die Anzahl der vCPUs, die Sie für diese Instanz verwenden möchten.
    • [MEMORY] ist die Größe des Arbeitsspeichers für die Instanz in 256 MB-Schritten. Sie können beispielsweise 5.25GB oder 5376MB angeben.

    Optional können Sie innerhalb der Knotengruppe auch verwaltete Instanzgruppen erstellen. Erstellen Sie dafür eine Instanzvorlage mit dem Befehl instance-templates create und geben Sie darin das Flag --node-group an, das auf den Namen der Knotengruppe verweist:

    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] ist der Name der neuen Instanzvorlage.
    • [IMAGE_FAMILY] ist eine der verfügbaren Image-Familien.
    • [IMAGE_PROJECT] ist das Image-Projekt, zu dem diese Image-Familie gehört.
    • [GROUP_NAME] ist der Name der Knotengruppe, in der diese Instanz erstellt werden soll.
    • [VCPUS] ist die Anzahl der vCPUs, die Sie für diese Instanz verwenden möchten.
    • [MEMORY] ist die Größe des Arbeitsspeichers für die Instanz in 256 MB-Schritten. Sie können beispielsweise 5.25GB oder 5376MB angeben.

    Erstellen Sie mit dem Befehl compute instance-groups managed create eine Instanzgruppe:

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

    Dabei ersetzen Sie Folgendes:

    • [INSTANCE_GROUP_NAME] ist der Name dieser Instanzgruppe.
    • [SIZE] ist die Anzahl der VM-Instanzen, die Sie dieser Instanzgruppe hinzufügen möchten. Die Knotengruppe benötigt genügend Ressourcen, damit Sie die Instanzen in dieser verwalteten Instanzgruppe unterbringen können.
    • [INSTANCE_TEMPLATE] ist der Name der Instanzvorlage, die Sie zum Erstellen dieser Gruppe verwenden möchten. Die Vorlage benötigt eine Knotenaffinität, die auf die gewünschte Knotengruppe verweist.
    • [ZONE] ist die Zone, in der sich die Knotengruppe befindet.

API

So können Sie Knoten und zugehörige Instanzen mit den Methoden in der Compute Engine API erstellen:

  1. Erstellen Sie in der API eine GET-Anfrage, damit Sie mit der Methode compute.nodetypes.list eine Liste der verfügbaren Knotentypen abrufen können:

    GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/nodeTypes
    

    Dabei gilt:

    • [PROJECT_ID] ist die Projekt-ID.
    • [ZONE] ist die Zone, aus der Sie die verfügbaren Knotentypen abrufen möchten.
  2. Erstellen Sie eine POST-Anfrage an die Methode compute.nodetemplates.insert, damit Sie eine neue Knotenvorlage erstellen können. Für größtmögliche Flexibilität geben Sie ein Attribut nodeTypeFlexibility an und setzen die Werte cpus und memory auf any, damit der Knoten auf jedem verfügbaren Knotentyp ohne lokale SSD-Kapazität ausgeführt werden kann.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/nodeTemplates
    
    {
     "name": "[TEMPLATE_NAME]",
     "nodeTypeFlexibility": {
      "cpus": "any",
      "memory": "any"
     }
    }
    

    Dabei gilt:

    • [PROJECT_ID] ist die Projekt-ID.
    • [REGION] ist die Zone, aus der Sie die verfügbaren Knotentypen abrufen möchten.
    • [TEMPLATE_NAME] ist der Name der neuen Knotenvorlage.

    Alternativ können Sie einen bestimmten Knotentyp auswählen, der in Ihrer Vorlage verwendet werden soll. Die Vorlage ist dann zwar weniger flexibel, doch Knoten werden in dem Fall nur dann erstellt, wenn sie Ihren vCPU- und Arbeitsspeicheranforderungen genau entsprechen.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/nodeTemplates
    
    {
     "name": "[TEMPLATE_NAME]",
     "nodeType": "[NODE_TYPE]"
    }
    

    Dabei gilt:

    • [PROJECT_ID] ist die Projekt-ID.
    • [TEMPLATE_NAME] ist der Name der neuen Knotenvorlage.
    • [NODE_TYPE] ist der Knotentyp, den Sie für diese Vorlage verwenden möchten. Sie können beispielsweise den Knotentyp n1-node-96-624 angeben, damit Sie einen Knoten mit 96 vCPUs und einem Arbeitsspeicher von 624 GB erstellen können.
    • [REGION] ist die Region, in der Sie diese Vorlage verwenden.
  3. Nachdem Sie die Knotenvorlage erstellt haben, erstellen Sie eine Knotengruppe. Verwenden Sie dazu die Methode compute.nodeGroups.insert:

    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]"
    }
    

    Dabei gilt:

    • [PROJECT_ID] ist die Projekt-ID.
    • [ZONE] ist die Zone, in der sich diese Knotengruppe befindet. Diese Zone muss sich in derselben Region befinden wie die von Ihnen verwendete Knotenvorlage.
    • [TARGET_SIZE] ist die Anzahl der Knoten, die Sie in der Gruppe erstellen möchten.
    • [REGION] ist die Region der Knotenvorlage.
    • [TEMPLATE_NAME] ist der Name der neuen Knotenvorlage.
    • [GROUP_NAME] ist der Name der neuen Knotengruppe.
    • [TEMPLATE_NAME] ist der Name der Knotenvorlage, die Sie zum Erstellen dieser Gruppe verwenden möchten.
  4. Nachdem Sie die Knotengruppe erstellt haben, können Sie in den Knotengruppen mit der Methode compute.instances.insert Instanzen erstellen. Geben Sie den Eintrag nodeAffinities an, der auf den Namen der Knotengruppe verweist. Sie können z. B. eine Instanz mit einem benutzerdefinierten Maschinentyp erstellen:

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances

    {
     "machineType": "/zones/[ZONE]/machineTypes/custom-[VCPUS]-[MEMORY]",
     "name": "[INSTANCE_NAME]",
     "scheduling": {
      "nodeAffinities": [
       {
        "key": "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] ist die Projekt-ID.
    • [INSTANCE_NAME] ist der Name der neuen Instanz.
    • [ZONE] ist die Zone, in der sich die Knotengruppe befindet.
    • [REGION] ist die Region der Knotenvorlage und des Subnetzwerks.
    • [IMAGE_FAMILY] ist eine der verfügbaren Image-Familien.
    • [IMAGE_PROJECT] ist das Image-Projekt, zu dem diese Image-Familie gehört.
    • [GROUP_NAME] ist der Name der Knotengruppe, in der diese Instanz erstellt werden soll.
    • [VCPUS] ist die Anzahl der vCPUs, die Sie für diese Instanz verwenden möchten.
    • [MEMORY] ist die Größe des Arbeitsspeichers für die Instanz in MB, beispielsweise 5376MB.
    • [NETWORK] ist der Name des Netzwerks, mit dem Sie die Instanz verbinden möchten.
    • [SUBNETWORK] ist der Name des Subnetzwerks, mit dem Sie die Instanz verbinden möchten.

    Optional können Sie innerhalb der Knotengruppe auch verwaltete Instanzgruppen erstellen. Erstellen Sie mithilfe der Methode compute.instancetempates.insert eine Instanzvorlage und geben Sie einen nodeAffinities-Eintrag an, der auf den Namen Ihrer Knotengruppe verweist:

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instance-templates
    
    {
    "name": "[TEMPLATE_NAME]",
    "properties": {
       "machineType": "custom-[VCPUS]-[MEMORY]",
       "name": "[INSTANCE_NAME]",
       "scheduling": {
        "nodeAffinities": [
         {
          "key": "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] ist die Projekt-ID.
    • [INSTANCE_NAME] ist der Name der neuen Instanz.
    • [ZONE] ist die Zone, in der sich die Knotengruppe befindet.
    • [REGION] ist die Region der Knotenvorlage und des Subnetzwerks.
    • [TEMPLATE_NAME] ist der Name der neuen Instanzvorlage.
    • [IMAGE_FAMILY] ist eine der verfügbaren Image-Familien.
    • [IMAGE_PROJECT] ist das Image-Projekt, zu dem diese Image-Familie gehört.
    • [GROUP_NAME] ist der Name der Knotengruppe, in der diese Instanz erstellt werden soll.
    • [VCPUS] ist die Anzahl der vCPUs, die Sie für diese Instanz verwenden möchten.
    • [MEMORY] ist die Größe des Arbeitsspeichers für die Instanz in MB, beispielsweise 5376MB.
    • [NETWORK] ist der Name des Netzwerks, mit dem Sie die Instanz verbinden möchten.
    • [SUBNETWORK] ist der Name des Subnetzwerks, mit dem Sie die Instanz verbinden möchten.

    Erstellen Sie eine Instanzgruppe mit der Methode compute.instancegroupmanagers.insert:

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

    Dabei gilt:

    • [PROJECT_ID] ist die Projekt-ID.
    • [ZONE] ist die Zone, in der sich die Knotengruppe befindet.
    • [INSTANCE_GROUP_NAME] ist der Name dieser Instanzgruppe.
    • [BASE_INSTANCE_NAME] ist der Präfixname für alle Instanzen in Ihrer verwalteten Instanzgruppe.
    • [SIZE] ist die Anzahl der VM-Instanzen, die Sie dieser Instanzgruppe hinzufügen möchten. Die Knotengruppe benötigt genügend Ressourcen, damit Sie die Instanzen in dieser verwalteten Instanzgruppe unterbringen können.
    • [INSTANCE_TEMPLATE] ist der Name der Instanzvorlage, die Sie zum Erstellen dieser Gruppe verwenden möchten. Die Vorlage benötigt eine Knotenaffinität, die auf die gewünschte Knotengruppe verweist.

Knotenaffinität konfigurieren

Die Knotenaffinität bestimmt, welche Knoten von Ihren Instanzen und verwalteten Instanzgruppen als Hostsysteme verwendet werden. Standardmäßig hat jeder Knoten folgende Affinitätslabels:

  • Jeder Knoten in einer Gruppe hat ein Affinitätslabel, das dem Namen der Knotengruppe entspricht:
    • Schlüssel: compute.googleapis.com/node-group-name
    • Wert: der Name der Knotengruppe
  • Jeder Knoten hat ein Affinitätslabel, das dem Namen des Knotens entspricht. Knotennamen werden automatisch generiert:
    • Schlüssel: compute.googleapis.com/node-name
    • Wert: der Name des einzelnen Knotens.

Sie können zusätzliche Affinitäts- oder Anti-Affinitätslabels konfigurieren, damit Ihre Instanzen nur auf den gewünschten Knotengruppen ausgeführt werden und Knoten nur mit Instanzen derselben Affinität gemeinsam genutzt werden. So können Sie vertrauliche Daten in bestimmten Knotengruppen zusammenhalten und von anderen Knotengruppen und anderen VM-Instanzen trennen, die auf Compute Engine ausgeführt werden.

Wenn Sie beispielsweise eine Knotengruppe für die Entwicklung und eine separate Knotengruppe für Produktionsarbeitslasten erstellen möchten, können Sie so vorgehen:

  1. Erstellen Sie zwei Knotenvorlagen mit zwei verschiedenen Labels: workload=frontend,environment=prod und workload=frontend,environment=dev. Das Label workload gibt an, dass diese Knotengruppen für Arbeitslasten vom Typ frontend bestimmt sind. Mit dem Label environment wird dagegen zwischen Umgebungen vom Typ prod und dev unterschieden:

    gcloud compute sole-tenancy node-templates create production-template \
       --node-requirements vCPU=any,memory=any,localSSD=0 --node-affinity-labels workload=frontend,environment=prod
    
    gcloud compute sole-tenancy node-templates create development-template \
       --node-requirements vCPU=any,memory=any,localSSD=0 --node-affinity-labels workload=frontend,environment=dev
    
  2. Erstellen Sie mehrere Knotengruppen mit den Produktions- und Entwicklungsvorlagen. Beispiel: Sie haben eine große Knotengruppe für die Produktion und mehrere kleinere Knotengruppen für die Entwicklung. Sie könnten diese Gruppen in verschiedenen Zonen und mit unterschiedlichen Zielgrößen zur Berücksichtigung des Umfangs der Arbeitslasten erstellen:

    gcloud compute node-groups create production-group \
        --node-template production-template --target-size 5 --zones us-west1-b
    
    gcloud compute node-groups create development-group-east1 \
        --node-template development-template --target-size 1 --zones us-east1-d
    
    gcloud compute node-groups create development-group-east2 \
        --node-template development-template --target-size 1 --zones us-east1-d
    
  3. Erstellen Sie für die Produktionsinstanzen die Datei node-affinity-prod.json, damit Sie differenzierter festlegen können, wie die Affinität auf den Produktionsinstanzen ausgeführt werden soll. Sie können beispielsweise eine Datei mit Anweisungen erstellen, denen zufolge Instanzen nur auf Knoten ausgeführt werden dürfen, die die Affinitäten workload=frontend und environment=prod haben:

    [{
    "key" : "workload",
    "operator" : "IN",
    "values" : ["frontend"]
    },
    {
    "key" : "environment",
    "operator" : "IN",
    "values" : ["prod"]
    }
    ]
    
  4. Erstellen Sie mit der Datei node-affinity-prod.json eine Instanzvorlage mit den gewünschten Attributen für die Instanzen der Produktions-VMs:

    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
    
  5. Starten Sie mit der 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
    

    Die Instanzen in der Gruppe werden gestartet und nur in den Knotengruppen ausgeführt, die die Affinitäten workload=frontend und environment=prod haben.

  6. Erstellen Sie für Entwicklungsinstanzen eine Datei node-affinity-dev.json, damit Sie differenzierter festlegen können, wie die Affinität auf den Entwicklungsinstanzen funktionieren soll. Sie könnten beispielsweise eine Datei erstellen, mit der Instanzen so konfiguriert werden, dass sie in einer beliebigen Knotengruppe mit der Affinität workload=frontend ausgeführt werden können, sofern sie nicht den Wert environment=prod enthält:

    [{
    "key" : "workload",
    "operator" : "IN",
    "values" : ["frontend"]
    },
    {
    "key" : "environment",
    "operator" : "NOT",
    "values" : ["prod"]
    }
    ]
    
  7. Für die Entwicklung könnten Sie zur Durchführung von Tests statt einer Instanzgruppe eine einzelne Instanz erstellen. Erstellen Sie diese Instanz mit der Datei node-affinity-dev.json. Wenn Sie beispielsweise ein bestimmtes Entwicklungs-Image mit der Bezeichnung development-image-1 testen möchten, erstellen Sie die Instanz und konfigurieren 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
    

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

Zum Erstellen eigener Affinitätskonfigurationen erstellen Sie eine Knotenvorlage und führen Knoten mit Ihren eigenen Affinitätsschlüsseln und -werten aus. Anschließend konfigurieren Sie Instanzen mit Ihren eigenen affinity.json-Dateien, um zu bestimmen, auf welchen Knoten die Instanzen ausgeführt werden können.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation