Instanzgruppe einem Load-Balancer hinzufügen

Das Google Cloud-Load-Balancing verwendet zur Weiterleitung von Traffic sowohl verwaltete als auch nicht verwaltete Instanzgruppen. Je nach Typ des verwendeten Load-Balancers können Sie Instanzgruppen einem Zielpool oder Back-End-Dienst hinzufügen. Weitere Informationen zum Load-Balancing erhalten Sie unter Load-Balancer auswählen.

Weitere Informationen zu Instanzgruppen finden Sie in der Übersicht über Instanzgruppen.

Hinweise

Beschränkungen

  • Wenn Sie Load-Balancing mit einer regionalen MIG verwenden möchten, gelten die folgenden Beschränkungen:
    • Sie können nicht den Balancing-Modus maxRate verwenden.
    • Wenn Sie ein HTTP(S)-Load-Balancing-Schema mit einer regionalen MIG verwenden, müssen Sie den Balancing-Modus maxRatePerInstance oder maxUtilization auswählen.

Verwaltete Instanzgruppe zu einem Back-End-Dienst hinzufügen

Ein Back-End-Dienst ist zum Erstellen der folgenden Arten von Load-Balancing-Diensten erforderlich:

  • Externes HTTP(S)-Load-Balancing
  • Internes HTTP(S)-Load-Balancing
  • SSL-Proxy-Load-Balancing
  • TCP-Proxy-Load-Balancing
  • Internes TCP/UDP-Load-Balancing

Ein Back-End-Dienst kann mehrere Back-Ends enthalten. Eine Instanzgruppe ist ein Back-End-Typ. Die Instanzen in der Instanzgruppe reagieren auf Traffic vom Load-Balancer. Der Back-End-Dienst wiederum weiß, welche Instanzen er verwenden kann und wie viel Traffic diese verarbeiten können und aktuell verarbeiten. Außerdem überwacht der Back-End-Dienst die Systemdiagnose und stellt keine neuen Verbindungen zu fehlerhaften Instanzen her.

Folgen Sie dieser Anleitung, um einem Back-End-Dienst um eine verwaltete Instanzgruppe zu erweitern.

Console

  1. Öffnen Sie in der Cloud Console die Seite "Load-Balancing".

    Zur Seite "Load-Balancing"

  2. Klicken Sie auf den Namen des Back-End-Dienstes, in den Sie in die verwaltete Instanzgruppe einfügen möchten.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie auf Back-End hinzufügen.
  5. Wählen Sie die Instanzgruppe aus, die Sie einfügen möchten.
  6. Bearbeiten Sie alle optionalen Einstellungen, die Sie ändern möchten.
  7. Speichern Sie die Änderungen.

gcloud

Verwenden Sie den Befehl add-backend des gcloud-Befehlszeilentools:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --instance-group=INSTANCE_GROUP \
        [--instance-group-region=INSTANCE_GROUP_REGION | --instance-group-zone=INSTANCE_GROUP_ZONE] \
        --balancing-mode=BALANCING_MODE

Je nach Balancing-Modus der verwalteten Instanzgruppe sind zusätzliche Parameter erforderlich. Weitere Informationen finden Sie in der SDK-Dokumentation zum Befehl add-backend.

API

Informationen zum Hinzufügen eines Back-End-Dienstes mit der REST API finden Sie unter backendServices.

Verwaltete Instanzgruppe zu einem Zielpool hinzufügen

Ein Zielpool ist ein Objekt, das eine oder mehrere VM-Instanzen enthält. Ein Zielpool wird beim Netzwerk-Load-Balancing verwendet. Dabei werden Nutzeranfragen von einem Netzwerk-Load-Balancer an den hinzugefügten Zielpool weitergeleitet. Die Instanzen, die Teil dieses Zielpools sind, leiten diese Anfragen weiter und geben eine Antwort zurück. Sie können einem Zielpool eine verwaltete Instanzgruppe hinzufügen, sodass der Zielpool automatisch aktualisiert wird, wenn Instanzen in der Instanzgruppe hinzugefügt oder entfernt werden.

Bevor Sie einem Zielpool eine verwaltete Instanzgruppe hinzufügen können, muss der Zielpool hinzugefügt werden. Weitere Informationen finden Sie in der Dokumentation zum Hinzufügen eines Zielpools.

Folgen Sie dieser Anleitung, um einem Zielpool eine vorhandene verwaltete Instanzgruppe hinzuzufügen. Dadurch werden alle VM-Instanzen, die Teil der verwalteten Instanzgruppe sind, dem Zielpool hinzugefügt.

Console

  1. Rufen Sie in der Cloud Console die Seite "Zielpools" auf.

    Zur Seite "Zielpools"

  2. Klicken Sie auf den Zielpool, dem Sie die Instanzgruppe hinzufügen möchten.
  3. Klicken Sie auf Bearbeiten.
  4. Scrollen Sie nach unten zum Abschnitt VM-Instanzen und klicken Sie auf Instanzgruppen auswählen.
  5. Wählen Sie eine Instanzgruppe aus dem Drop-down-Menü aus.
  6. Speichern Sie die Änderungen.

gcloud

Verwenden Sie den Befehl set-target-pools des gcloud-Befehlszeilentools:

gcloud compute instance-groups managed set-target-pools [INSTANCE_GROUP] \
        --target-pools [TARGET_POOL,..] [--zone ZONE]

Dabei gilt:

  • [INSTANCE_GROUP] ist der Name der Instanzgruppe.
  • [TARGET_POOL] ist der Name von einem oder mehreren Zielpools, denen diese Instanzgruppe hinzugefügt werden soll.
  • [ZONE] ist die Zone der Instanzgruppe.

API

Erstellen Sie in der API eine POST-Anfrage an den folgenden URI:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/setTargetPools

Dabei gilt:

  • [PROJECT_ID] ist die Projekt-ID für diese Anfrage.
  • [ZONE] ist die Zone der Instanzgruppe.
  • [INSTANCE_GROUP] ist der Name der Instanzgruppe.

Der Anfragetext muss eine Liste der URIs zu den Zielpools enthalten, zu denen Sie diese Gruppe hinzufügen möchten. Beispiel:

{
  "targetPools": [
    "regions/us-central1/targetPools/example-targetpool-1",
    "regions/us-central1/targetPools/example-targetpool-2"
  ]
}

Benannte Ports verwalteten Instanzgruppen zuweisen

Benannte Ports sind Schlüssel/Wert-Paare, die für einen Dienstnamen und die Portnummer stehen, auf der der Dienst ausgeführt wird. Sie werden von Load-Balancing-Diensten genutzt, um Traffic an bestimmte Ports auf einzelnen Instanzen zu leiten. Wenn Sie beispielsweise einen benannten Port als http:80 festlegen und dann den Back-End-Dienst so konfigurieren, dass Traffic an einen Port mit dem Namen http gesendet wird, leitet der Load-Balancer den Traffic an Port 80 einzelner Instanzen der Instanzgruppe weiter.

Benannte Ports sind einfache Metadaten, die vom Load-Balancing genutzt werden. Sie steuern keine Netzwerk- oder Firewallressourcen in Compute Engine.

Sie können jedem Dienstnamen mehrere Ports und jedem Port mehrere Dienstnamen zuweisen. Bedenken Sie jedoch, dass ein Back-End-Dienst Traffic immer nur an einen benannten Port weiterleiten kann.

Console

  1. Öffnen Sie in der Cloud Console die Seite Instanzgruppen.

    Zur Seite "Instanzgruppen"

  2. Klicken Sie auf den Namen der Instanzgruppe, in der Sie benannte Ports festlegen möchten. Ihnen wird eine Seite mit den Attributen der Instanzgruppe angezeigt.
  3. Klicken Sie auf Gruppe bearbeiten, um die verwaltete Instanzgruppe zu bearbeiten.
  4. Klicken Sie auf Portnamenzuordnung festlegen, um die Optionen für benannte Ports zu maximieren.
  5. Klicken Sie auf Element hinzufügen und geben Sie den gewünschten Portnamen sowie die Portnummern ein, die Sie mit dem Namen verknüpfen möchten. Wenn Sie weitere Einträge benötigen, klicken Sie noch einmal auf Element hinzufügen.
  6. Klicken Sie auf Speichern, um die Änderungen zu speichern und die benannten Ports auf die Instanzen in der verwalteten Instanzgruppe anzuwenden.

gcloud

Richten Sie mit dem Befehl set-named-ports einen oder mehrere benannte Ports ein:

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports [PORT_NAME]:[PORT],[PORT_NAME]:[PORT]

Beispiel:

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports name1:80,name2:8080

Sie können für jeden Namen oder Port mehrere Einträge erstellen, wenn Sie einem Dienstnamen mehrere Ports oder einem Dienst mehrere Namen zuweisen möchten. Ordnen Sie beispielsweise name1 den Ports 10, 20 und 80 zu. Weisen Sie anschließend name2 und name3 Port 8080 zu. Zum Schluss verknüpfen Sie Port 9000 mit name4.

gcloud compute instance-groups managed set-named-ports [INSTANCE_GROUP] \
      --named-ports name1:10,name1:20,name1:80,\
                    name2:8080,name3:8080,\
                    name4:9000

Die Portnamenzuordnung für eine verwaltete Instanzgruppe prüfen Sie mit dem Befehl get-named-ports:

gcloud compute instance-groups managed get-named-ports [INSTANCE_GROUP]
NAME  PORT
name1 10
name1 20
name1 80
name2 8080
name3 8080
name4 9000

API

Die instanceGroupManagers API bietet nicht die API-Methode setNamedPorts. Verwenden Sie für diese Aufgabe stattdessen die instanceGroups API.

Erstellen Sie eine Anfrage an die instanceGroups API. Geben Sie dabei den Namen der Instanzgruppe an. Ermitteln Sie den aktuellen Wert der Instanzgruppe für fingerprint durch Abrufen von Informationen über eine bestimmte Gruppe. Fügen Sie den fingerprint-Wert sowie eines oder mehrere namedPorts-Wertpaare in den Anfragetext ein:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  },
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  }
 ]
}

Beispiel:

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 80
  },
  {
   "name": "name2",
   "port": 8080
  }
 ]
}

Erstellen Sie mehrere Einträge für diesen Namen, wenn Sie einem Dienstnamen mehrere Ports zuweisen möchten. Weisen Sie beispielsweise name1 die Ports 10, 20 und 80 zu. Ordnen Sie außerdem name2 Port 8080 zu.

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 10
  },
  {
   "name": "name1",
   "port": 20
  }
  {
   "name": "name1",
   "port": 80
  }
  {
   "name": "name2",
   "port": 8080
  }
  {
   "name": "name3",
   "port": 80
  }
  {
   "name": "name4",
   "port": 8080
  }
 ]
}

Stellen Sie eine GET-Anfrage, die auf die Gruppe verweist, um eine Liste der benannten Ports zu erhalten, die bereits einer verwalteten Instanzgruppe zugewiesen sind:

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]

Weitere Informationen