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
- Sie müssen in Ihrem Projekt die Compute Engine API aktivieren.
- Sie müssen für jeden Netzwerkendpunkt, den Sie der NEG für die Portzuordnung zuordnen möchten, VMs erstellen. Die VMs müssen sich alle in derselben Region befinden.
- Weitere Informationen finden Sie unter Veröffentlichte Dienste.
- Weitere Informationen zur Portzuordnung für Private Service Connect.
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:
-
Administrator für Compute-Load-Balancer (
roles/compute.loadBalancerAdmin
) -
Compute-Netzwerkadministrator (
roles/compute.networkAdmin
)
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
Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.
Geben Sie einen Namen ein.
Klicken Sie auf Typ der Netzwerk-Endpunktgruppe und wählen Sie dann Portzuordnung NEG (regional) aus.
Wählen Sie eine Region aus.
Wählen Sie ein Netzwerk aus.
Wählen Sie ein Subnetzwerk.
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 PortzuordnungNETWORK
: das VPC-Netzwerk der NEG für die PortzuordnungSUBNET
: 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-NEGREGION
: die Region der NEG für die PortzuordnungNEG
: Der Name der NEG für die Portzuordnung.NETWORK
: das VPC-Netzwerk der NEG für die PortzuordnungSUBNET
: 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
Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
Klicken Sie auf den Namen der NEG-Portzuordnung, die Sie aktualisieren möchten.
Klicken Sie auf Netzwerkendpunkte hinzufügen.
Klicken Sie auf VM-Instanz und wählen Sie eine VM aus.
Klicken Sie auf VM-Port 1 und geben Sie einen Dienstport ein.
Klicken Sie auf Clientport 1 und geben Sie einen Zielport für den Client ein.
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.
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 PortzuordnungCLIENT_DESTINATION_PORT_1
: Der Clientzielport des ersten NetzwerkendpunktsPROJECT_ID
: die Projekt-ID des ErstellerprojektsZONE_1
: die Zone des ersten NetzwerkendpunktsVM_1_NAME
: der Name der Ziel-VM für den ersten NetzwerkendpunktVM_1_PORT
: der Dienstport des ersten NetzwerkendpunktsCLIENT_DESTINATION_PORT_2
: der Clientzielport des zweiten NetzwerkendpunktsZONE_2
: die Zone des zweiten NetzwerkendpunktsVM_2_NAME
: der Name der Ziel-VM für den zweiten NetzwerkendpunktVM_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 ErstellerprojektsREGION
: die Region der NEG für die PortzuordnungNEG
: Der Name der NEG für die Portzuordnung.CLIENT_DESTINATION_PORT_1
: der Clientzielport des ersten NetzwerkendpunktsZONE_1
: die Zone des ersten NetzwerkendpunktsVM_1_NAME
: der Name der Ziel-VM für den ersten NetzwerkendpunktSERVICE_PORT_1
: der Dienstport des ersten NetzwerkendpunktsCLIENT_DESTINATION_PORT_2
: der Clientzielport des zweiten NetzwerkendpunktsZONE_2
: die Zone des zweiten NetzwerkendpunktsVM_2_NAME
: der Name der Ziel-VM für den zweiten NetzwerkendpunktSERVICE_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
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
- Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Intern aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
- Geben Sie im Feld Name des Load Balancers einen Namen ein.
- Wählen Sie eine Region aus.
- Wählen Sie ein Netzwerk aus.
Backend-Konfiguration
- Wählen Sie als Back-End-Typ die Option Netzwerkendpunktgruppe für Portzuordnung aus.
- Wählen Sie eine Netzwerk-Endpunktgruppe für Portzuordnung aus.
Frontend-Konfiguration
- Klicken Sie auf Frontend-Konfiguration.
- Optional: Geben Sie einen Namen ein.
- Optional: Geben Sie eine Beschreibung ein.
- Wählen Sie ein Protokoll.
- Wählen Sie ein Subnetzwerk.
- Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
gcloud
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
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.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 WeiterleitungsregelPROTOCOL
: das Protokoll der Weiterleitungsregel, entwederTCP
oderUDP
SUBNET
: das Subnetz des Erstellers, das mit dem NEG für die Portzuordnung verknüpft sein mussIP_ADDRESS
: die IP-Adresse der Weiterleitungsregel, die aus dem IP-Adressbereich des Producer-Subnetzes stammen muss
API
Wenn Sie einen Backend-Dienst erstellen möchten, senden Sie eine
POST
-Anfrage an die MethoderegionBackendServices.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-DienstesREGION
ist die Region des Backend-Dienstes.SERVICE
: der Name des Backend-Dienstes.NETWORK
: das VPC-Netzwerk des Erstellers
Wenn Sie dem Back-End-Dienst die Portzuordnungs-NEG hinzufügen möchten, senden Sie eine
PATCH
-Anfrage an die MethoderegionBackendServices.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.Wenn Sie eine Weiterleitungsregel für Ihren Port-Mapping-Dienst erstellen möchten, senden Sie eine
POST
-Anfrage an die MethodeforwardingRules.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 WeiterleitungsregelPROTOCOL
: das Protokoll der Weiterleitungsregel, entwederTCP
oderUDP
SUBNET
: das Subnetz des Erstellers, das mit dem NEG für die Portzuordnung verknüpft sein mussIP_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.