Portzuordnungsdienste erstellen

Auf dieser Seite wird beschrieben, wie Dienstersteller Dienste veröffentlichen können, die die Portzuordnung von Private Service Connect verwenden.

Mit der Private Service Connect-Portzuordnung können VM-Instanzen von Nutzern über einen einzigen Private Service Connect-Endpunkt privat mit bestimmten Dienstports auf bestimmten Ersteller-VMs kommunizieren.

Vorbereitung

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Produzentenprojekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Veröffentlichen eines Dienstes mit Private Service Connect-Portzuordnung benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Portzuordnungsdienst erstellen und veröffentlichen

Portzuordnungsdienste haben eine ähnliche Konfiguration wie interne Passthrough-Network Load Balancer, der Traffic wird jedoch nicht ausgeglichen. So erstellen und veröffentlichen Sie einen Portzuordnungsdienst:

  • NEG für Portzuordnung erstellen
  • Netzwerkendpunkte zur NEG für die Portzuordnung hinzufügen
  • Portzuordnungsdienst erstellen
  • Portzuordnungsdienst veröffentlichen

NEG für Portzuordnung erstellen

Eine Portzuordnungs-NEG ist eine regionale NEG mit dem Netzwerkendpunkttyp GCE_VM_IP_PORTMAP. Der Typ einer Portzuordnung kann nach der Erstellung nicht mehr geändert werden.

Wenn Sie eine NEG für die Portzuordnung erstellen, wählen Sie ein Subnetz aus. Netzwerkendpunkte, die Sie der Portzuordnungs-NEG zuordnen, müssen eine primäre Netzwerkschnittstelle in diesem Subnetz haben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.

    Zu den Netzwerk-Endpunktgruppen

  2. Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.

  3. Geben Sie einen Namen ein.

  4. Klicken Sie auf Typ der Netzwerk-Endpunktgruppe und wählen Sie dann Portzuordnung NEG (regional) aus.

  5. Wählen Sie eine Region aus.

  6. Wählen Sie ein Netzwerk aus.

  7. Wählen Sie ein Subnetzwerk.

  8. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl network-endpoints-groups create aus.

gcloud beta compute network-endpoint-groups create NEG \
    --region=REGION \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-endpoint-type=GCE_VM_IP_PORTMAP

Ersetzen Sie dabei Folgendes:

  • NEG: Der Name der NEG für die Portzuordnung.
  • REGION: die Region der NEG für die Portzuordnung
  • NETWORK: das VPC-Netzwerk der NEG für die Portzuordnung
  • SUBNET: das Subnetz der NEG für die Portzuordnung

API

Senden Sie eine POST-Anfrage an die Methode regionNetworkEndpointGroups.insert.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups
{
  "name": "NEG",
  "networkEndpointType": "GCE_VM_IP_PORTMAP",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: die Projekt-ID der Portzuordnungs-NEG
  • REGION: die Region der NEG für die Portzuordnung
  • NEG: Der Name der NEG für die Portzuordnung.
  • NETWORK: das VPC-Netzwerk der NEG für die Portzuordnung
  • SUBNET: das Subnetz der NEG für die Portzuordnung

Netzwerkendpunkte zur NEG für die Portzuordnung hinzufügen

Erstellen Sie einen oder mehrere Netzwerkendpunkte mit Portzuordnungen und hängen Sie sie an die NEG für die Portzuordnung an.

Netzwerkendpunkte für NEGs für die Portzuordnung sind zonal und müssen die folgenden Anforderungen erfüllen:

  • Jeder Netzwerkendpunkt bezieht sich auf eine Compute Engine-VM mit einer primären Netzwerkschnittstelle im selben Subnetz wie die NEG für die Portzuordnung.
  • Jeder Netzwerkendpunkt bezieht sich auf einen eindeutigen Client-Zielport.
  • Jeder Netzwerkendpunkt muss sich auf eine eindeutige Kombination aus Dienstport und VM beziehen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.

    Zu den Netzwerk-Endpunktgruppen

  2. Klicken Sie auf den Namen der NEG-Portzuordnung, die Sie aktualisieren möchten.

  3. Klicken Sie auf Netzwerkendpunkte hinzufügen.

  4. Klicken Sie auf VM-Instanz und wählen Sie eine VM aus.

  5. Klicken Sie auf VM-Port 1 und geben Sie einen Dienstport ein.

  6. Klicken Sie auf Clientport 1 und geben Sie einen Zielport für den Client ein.

  7. Klicken Sie für jeden zusätzlichen Netzwerkendpunkt, den Sie hinzufügen möchten, auf Netzwerkendpunkt hinzufügen und geben Sie die Details zum Netzwerkendpunkt ein.

  8. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl network-endpoint-groups update aus. Fügen Sie für jeden Netzwerkendpunkt, den Sie anhängen möchten, das Flag --add-endpoint ein.

gcloud beta compute network-endpoint-groups update NEG \
    --region=REGION \
    --add-endpoint=client-destination-port=CLIENT_DESTINATION_PORT_1,instance=projects/PROJECT_ID/zones/ZONE_1/instances/VM_1_NAME,port=VM_1_PORT \
    --add-endpoint=client-destination-port=CLIENT_DESTINATION_PORT_2,instance=projects/PROJECT_ID/zones/ZONE_2/instances/VM_2_NAME,port=VM_2_PORT

Ersetzen Sie dabei Folgendes:

  • NEG: Der Name der NEG für die Portzuordnung.
  • REGION: die Region der NEG für die Portzuordnung
  • CLIENT_DESTINATION_PORT_1: Der Clientzielport des ersten Netzwerkendpunkts
  • PROJECT_ID: die Projekt-ID des Erstellerprojekts
  • ZONE_1: die Zone des ersten Netzwerkendpunkts
  • VM_1_NAME: der Name der Ziel-VM für den ersten Netzwerkendpunkt
  • VM_1_PORT: der Dienstport des ersten Netzwerkendpunkts
  • CLIENT_DESTINATION_PORT_2: der Clientzielport des zweiten Netzwerkendpunkts
  • ZONE_2: die Zone des zweiten Netzwerkendpunkts
  • VM_2_NAME: der Name der Ziel-VM für den zweiten Netzwerkendpunkt
  • VM_2_PORT: der Dienstport des zweiten Netzwerkendpunkts

API

Senden Sie eine POST-Anfrage an die Methode regionNetworkEndpointGroups.attachNetworkEndpoints.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG/attachNetworkEndpoints
{
  "networkEndpoints": [
    {
      "clientDestinationPort":CLIENT_DESTINATION_PORT_1,
      "instance": "projects/PROJECT_ID/zones/ZONE_1/instances/VM_1_NAME",
      "port": SERVICE_PORT_1
    },
    {
      "clientDestinationPort": CLIENT_DESTINATION_PORT_2,
      "instance": "projects/PROJECT_ID/zones/ZONE_2/instances/VM_2_NAME",
      "port": SERVICE_PORT_2
    }
  ]
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: die Projekt-ID des Erstellerprojekts
  • REGION: die Region der NEG für die Portzuordnung
  • NEG: Der Name der NEG für die Portzuordnung.
  • CLIENT_DESTINATION_PORT_1: der Clientzielport des ersten Netzwerkendpunkts
  • ZONE_1: die Zone des ersten Netzwerkendpunkts
  • VM_1_NAME: der Name der Ziel-VM für den ersten Netzwerkendpunkt
  • SERVICE_PORT_1: der Dienstport des ersten Netzwerkendpunkts
  • CLIENT_DESTINATION_PORT_2: der Clientzielport des zweiten Netzwerkendpunkts
  • ZONE_2: die Zone des zweiten Netzwerkendpunkts
  • VM_2_NAME: der Name der Ziel-VM für den zweiten Netzwerkendpunkt
  • SERVICE_PORT_2: der Dienstport des zweiten Netzwerkendpunkts

Portzuordnungsdienst erstellen

So erstellen Sie einen Portzuordnungsdienst:

Sie können die NEG für die Portzuordnung, die mit einem Back-End-Dienst verknüpft ist, nicht ändern, nachdem Sie die NEG hinzugefügt haben. Sie können jedoch die Netzwerkendpunkte der NEG für die Portzuordnung aktualisieren.

Die Verbindung einer Weiterleitungsregel kann nach dem Erstellen nicht mehr aktualisiert werden. Wenn Sie eine Verbindung zu einem anderen Backend-Dienst herstellen möchten, löschen Sie die Weiterleitungsregel und erstellen Sie eine neue.

Console

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
  5. Wählen Sie für Öffentlich oder intern die Option Intern aus und klicken Sie auf Weiter.
  6. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie im Feld Name des Load Balancers einen Namen ein.
  2. Wählen Sie eine Region aus.
  3. Wählen Sie ein Netzwerk aus.

Backend-Konfiguration

  1. Wählen Sie als Back-End-Typ die Option Netzwerkendpunktgruppe für Portzuordnung aus.
  2. Wählen Sie eine Netzwerk-Endpunktgruppe für Portzuordnung aus.

Frontend-Konfiguration

  1. Klicken Sie auf Frontend-Konfiguration.
  2. Optional: Geben Sie einen Namen ein.
  3. Optional: Geben Sie eine Beschreibung ein.
  4. Wählen Sie ein Protokoll.
  5. Wählen Sie ein Subnetzwerk.
  6. Klicken Sie auf Fertig.
  7. Klicken Sie auf Erstellen.

gcloud

  1. Verwenden Sie den Befehl backend-services create, um einen Backend-Dienst zu erstellen.

    gcloud beta compute backend-services create SERVICE \
        --load-balancing-scheme=internal \
        --region=REGION \
        --network=NETWORK
    

    Ersetzen Sie dabei Folgendes:

    • SERVICE: der Name des Backend-Dienstes.
    • REGION ist die Region des Backend-Dienstes.
    • NETWORK: das VPC-Netzwerk des Erstellers des Backend-Dienstes
  2. Verwenden Sie den Befehl backend-services add-backend, um dem Back-End-Dienst die Portzuordnungs-NEG hinzuzufügen.

    Sie können einem einzelnen Back-End-Dienst nicht mehrere NEGs für die Portzuordnung hinzufügen.

    gcloud beta compute backend-services add-backend SERVICE \
        --network-endpoint-group=NEG \
        --network-endpoint-group-region=REGION
    

    Ersetzen Sie NEG durch den Namen der NEG für die Portzuordnung.

  3. Verwenden Sie den Befehl forwarding-rules create, um eine Weiterleitungsregel für Ihren Portzuordnungsdienst zu erstellen.

    Die Weiterleitungsregel muss so konfiguriert sein, dass Traffic an alle Client-Zielanschlüsse weitergeleitet wird.

    gcloud beta compute forwarding-rules create RULE \
        --load-balancing-scheme=INTERNAL \
        --ip-protocol=PROTOCOL \
        --network=NETWORK \
        --subnet=SUBNET \
        --address=IP_ADDRESS \
        --ports=ALL \
        --region=REGION \
        --backend-service=SERVICE
    

    Ersetzen Sie dabei Folgendes:

    • RULE: der Name der Weiterleitungsregel
    • PROTOCOL: das Protokoll der Weiterleitungsregel, entweder TCP oder UDP
    • SUBNET: das Subnetz des Erstellers, das mit dem NEG für die Portzuordnung verknüpft sein muss
    • IP_ADDRESS: die IP-Adresse der Weiterleitungsregel, die aus dem IP-Adressbereich des Producer-Subnetzes stammen muss

API

  1. Wenn Sie einen Backend-Dienst erstellen möchten, senden Sie eine POST-Anfrage an die Methode regionBackendServices.insert.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices
    {
      "name": "SERVICE",
      "loadBalancingScheme": "INTERNAL",
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
    

    Ersetzen Sie dabei Folgendes:

    • PROJECT_ID: die ID des Projekts des Backend-Dienstes
    • REGION ist die Region des Backend-Dienstes.
    • SERVICE: der Name des Backend-Dienstes.
    • NETWORK: das VPC-Netzwerk des Erstellers
  2. Wenn Sie dem Back-End-Dienst die Portzuordnungs-NEG hinzufügen möchten, senden Sie eine PATCH-Anfrage an die Methode regionBackendServices.patch.

    Sie können einem einzelnen Back-End-Dienst nicht mehrere NEGs für die Portzuordnung hinzufügen.

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/SERVICE
    {
      "backends": [
        {
          "group": "https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG"
        }
      ]
    }
    

    Ersetzen Sie NEG durch den Namen der NEG für die Portzuordnung.

  3. Wenn Sie eine Weiterleitungsregel für Ihren Port-Mapping-Dienst erstellen möchten, senden Sie eine POST-Anfrage an die Methode forwardingRules.insert.

    Die Weiterleitungsregel muss so konfiguriert sein, dass Traffic an alle Client-Zielanschlüsse weitergeleitet wird.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID>/regions/REGION/forwardingRules
    {
      "name": "RULE",
      "loadBalancingScheme": "INTERNAL",
      "IPProtocol": "PROTOCOL",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET",
      "IPAddress": "IP_ADDRESS",
      "allPorts": true,
      "backendService": "projects/PROJECT_ID/regions/REGION/backendServices/SERVICE"
    }
    

    Ersetzen Sie dabei Folgendes:

    • RULE: der Name der Weiterleitungsregel
    • PROTOCOL: das Protokoll der Weiterleitungsregel, entweder TCP oder UDP
    • SUBNET: das Subnetz des Erstellers, das mit dem NEG für die Portzuordnung verknüpft sein muss
    • IP_ADDRESS: die IP-Adresse der Weiterleitungsregel, die aus dem IP-Adressbereich des Produzenten-Subnetzes stammen muss

Portzuordnungsdienst veröffentlichen

Wenn Sie Ihren Portzuordnungsdienst für Nutzer verfügbar machen möchten, veröffentlichen Sie den Dienst, indem Sie einen Dienstanhang erstellen. Geben Sie beim Erstellen des Dienstanhangs die Weiterleitungsregel an, die mit Ihrem Portzuordnungsdienst verknüpft ist.

Nächste Schritte