Crea servizi di mappatura delle porte
Questa pagina descrive in che modo i produttori di servizi possono pubblicare servizi che utilizzano la mappatura delle porte di Private Service Connect.
La mappatura delle porte di Private Service Connect consente ai client consumer di comunicare privatamente con porte di servizio specifiche su VM producer specifiche tramite un singolo endpoint Private Service Connect.
Prima di iniziare
- Devi abilitare l'API Compute Engine nel tuo progetto.
- Devi creare VM per ogni endpoint di rete che vuoi collegare alla mappatura delle porte NEG. Le VM devono trovarsi tutte nella stessa regione.
- Leggi Informazioni sui servizi pubblicati.
- Leggi l'articolo Informazioni sulla mappatura delle porte di Private Service Connect.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per prepararti a pubblicare un servizio con la mappatura delle porte Private Service Connect, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto del produttore:
-
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin
) -
Amministratore rete Compute (
roles/compute.networkAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea e pubblica un servizio di mappatura delle porte
I servizi di mappatura delle porte hanno configurazioni simili ai bilanciatori del carico di rete passthrough interni, ma il traffico non è bilanciato. Per creare e pubblicare un servizio di mappatura delle porte:
- Crea un NEG di mappatura delle porte
- Aggiungi endpoint di rete al gruppo di endpoint di rete con mappatura delle porte
- Crea un servizio di mappatura delle porte
- Pubblica il servizio di mappatura delle porte
Crea un NEG di mappatura delle porte
Un NEG di rete con mappatura delle porte è un NEG regionale con il tipo di endpoint di rete GCE_VM_IP_PORTMAP
. Non è possibile modificare il tipo di un NEG di mappatura delle porte dopo la sua creazione.
Quando crei un NEG di mappatura delle porte, scegli una subnet. Gli endpoint di rete associati al gruppo di esclusioni di rete con mappatura delle porte devono avere un'interfaccia di rete principale in questa subnet.
Console
Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
Fai clic su Crea gruppo di endpoint di rete.
Inserisci un nome.
Fai clic su Tipo di gruppo di endpoint di rete e poi seleziona NEG con mappatura delle porte (regionale).
Seleziona una Regione.
Seleziona una Rete.
Seleziona una Subnet.
Fai clic su Crea.
gcloud
Utilizza il
comando network-endpoints-groups create
.
gcloud compute network-endpoint-groups create NEG \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET \ --network-endpoint-type=GCE_VM_IP_PORTMAP
Sostituisci quanto segue:
NEG
: il nome del NEG di mappatura delle porteREGION
: la regione del NEG di mappatura delle porteNETWORK
: la rete VPC del NEG di mappatura delle porteSUBNET
: la subnet del NEG di mappatura delle porte
API
Invia una richiesta POST
al
metodo regionNetworkEndpointGroups.insert
.
POST https://compute.googleapis.com/compute/v1/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" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto della mappatura delle porte NEGREGION
: la regione del NEG di mappatura delle porteNEG
: il nome del NEG di mappatura delle porteNETWORK
: la rete VPC del NEG di mappatura delle porteSUBNET
: la subnet del NEG di mappatura delle porte
Aggiungi endpoint di rete al gruppo di endpoint di rete con mappatura delle porte
Crea uno o più endpoint di rete con mappature delle porte e collegali al NEG di mappatura delle porte.
Gli endpoint di rete per i NEG con mappatura delle porte sono di zona e devono soddisfare i seguenti requisiti:
- Ogni endpoint di rete fa riferimento a una VM Compute Engine con un'interfaccia di rete principale nella stessa subnet del NEG di mappatura delle porte.
- Ogni endpoint di rete fa riferimento a una porta di destinazione del client univoca.
Ogni endpoint di rete deve fare riferimento a una combinazione univoca di porta di servizio e VM.
Console
Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
Fai clic sul nome del NEG di mappatura delle porte da aggiornare.
Fai clic su Aggiungi endpoint di rete.
Fai clic su Istanza VM e seleziona una VM.
Fai clic su Porta VM 1 e inserisci una porta di servizio.
Fai clic su Porta client 1 e inserisci una porta di destinazione del client.
Per ogni endpoint di rete aggiuntivo da aggiungere, fai clic su Aggiungi endpoint di rete e inserisci i dettagli dell'endpoint di rete.
Fai clic su Crea.
gcloud
Utilizza il
comando network-endpoint-groups update
. Includi un flag --add-endpoint
per ogni
endpoint di rete che vuoi collegare.
gcloud 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
Sostituisci quanto segue:
NEG
: il nome del NEG di mappatura delle porteREGION
: la regione del NEG di mappatura delle porteCLIENT_DESTINATION_PORT_1
: la porta di destinazione del client del primo endpoint di retePROJECT_ID
: l'ID progetto del progetto del produttoreZONE_1
: la zona del primo endpoint di reteVM_1_NAME
: il nome della VM di destinazione per il primo endpoint di reteVM_1_PORT
: la porta di servizio del primo endpoint di reteCLIENT_DESTINATION_PORT_2
: la porta di destinazione del client del secondo endpoint di reteZONE_2
: la zona del secondo endpoint di reteVM_2_NAME
: il nome della VM di destinazione per il secondo endpoint di reteVM_2_PORT
: la porta di servizio del secondo endpoint di rete
API
Invia una richiesta POST
al
metodo regionNetworkEndpointGroups.attachNetworkEndpoints
.
POST https://compute.googleapis.com/compute/v1/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 } ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del progetto del produttoreREGION
: la regione del NEG di mappatura delle porteNEG
: il nome del NEG di mappatura delle porteCLIENT_DESTINATION_PORT_1
: la porta di destinazione del client del primo endpoint di reteZONE_1
: la zona del primo endpoint di reteVM_1_NAME
: il nome della VM di destinazione per il primo endpoint di reteSERVICE_PORT_1
: la porta di servizio del primo endpoint di reteCLIENT_DESTINATION_PORT_2
: la porta di destinazione del client del secondo endpoint di reteZONE_2
: la zona del secondo endpoint di reteVM_2_NAME
: il nome della VM di destinazione per il secondo endpoint di reteSERVICE_PORT_2
: la porta di servizio del secondo endpoint di rete
Crea un servizio di mappatura delle porte
Per creare un servizio di mappatura delle porte, completa i seguenti passaggi.
Non puoi modificare il NEG di mappatura delle porte associato a un servizio di backend dopo averlo aggiunto. Tuttavia, puoi aggiornare gli endpoint di rete del NEG con mappatura delle porte.
Non puoi aggiornare la connessione di una regola di forwarding dopo averla creata. Se devi connetterti a un servizio di backend diverso, elimina la regola di inoltro e poi creane una nuova.
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Bilanciatore del carico passthrough e fai clic su Avanti.
- In Pubblico o interno, seleziona Interno e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
- Inserisci un nome del bilanciatore del carico.
- Seleziona una Regione.
- Seleziona una Rete.
Configurazione backend
- In Tipo di backend, seleziona Gruppo di endpoint di rete con mappatura delle porte.
- Seleziona un gruppo di endpoint di rete con mappatura delle porte.
Configurazione frontend
- Fai clic su Configurazione frontend.
- (Facoltativo) Inserisci un Nome.
- (Facoltativo) Inserisci una Descrizione.
- Seleziona un Protocollo.
- Seleziona una Subnet.
- Fai clic su Fine.
- Fai clic su Crea.
gcloud
Per creare un servizio di backend, utilizza il comando
backend-services create
.gcloud compute backend-services create SERVICE \ --load-balancing-scheme=internal \ --region=REGION \ --network=NETWORK
Sostituisci quanto segue:
SERVICE
: il nome del servizio di backendREGION
: la regione del servizio di backendNETWORK
: la rete VPC producer del servizio di backend
Per aggiungere il NEG di mappatura delle porte al servizio di backend, utilizza il comando
backend-services add-backend
.Non puoi aggiungere più NEG di mappatura delle porte a un singolo servizio di backend.
gcloud compute backend-services add-backend SERVICE \ --network-endpoint-group=NEG \ --network-endpoint-group-region=REGION
Sostituisci
NEG
con il nome della mappatura delle porte NEG.Per creare una regola di forwarding per il servizio di mappatura delle porte, utilizza il comando
forwarding-rules create
.La regola di forwarding deve essere configurata per inoltrare il traffico per tutte le porte di destinazione del client.
gcloud 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
Sostituisci quanto segue:
RULE
: il nome della regola di forwardingPROTOCOL
: il protocollo della regola di forwarding, che può essereTCP
oUDP
SUBNET
: la subnet del produttore, che deve essere la stessa associata al NEG di mappatura delle porteIP_ADDRESS
: l'indirizzo IP della regola di inoltro, che deve provenire dall'intervallo di indirizzi IP della sottorete del produttore
API
Per creare un servizio di backend, invia una richiesta
POST
al metodoregionBackendServices.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices { "name": "SERVICE", "loadBalancingScheme": "INTERNAL", "network": "projects/PROJECT_ID/global/networks/NETWORK" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto del servizio di backendREGION
: la regione del servizio di backendSERVICE
: il nome del servizio di backendNETWORK
: la rete VPC producer
Per aggiungere il NEG di mappatura delle porte al servizio di backend, invia una
PATCH
richiesta al metodoregionBackendServices.patch
.Non puoi aggiungere più NEG di mappatura delle porte a un singolo servizio di backend.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/SERVICE { "backends": [ { "group": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG" } ] }
Sostituisci
NEG
con il nome della mappatura delle porte NEG.Per creare una regola di forwarding per il servizio di mappatura delle porte, invia una richiesta
POST
al metodoforwardingRules.insert
.La regola di forwarding deve essere configurata per inoltrare il traffico per tutte le porte di destinazione del client.
POST https://compute.googleapis.com/compute/v1/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" }
Sostituisci quanto segue:
RULE
: il nome della regola di forwardingPROTOCOL
: il protocollo della regola di forwarding, che può essereTCP
oUDP
SUBNET
: la subnet del produttore, che deve essere la stessa associata al NEG di mappatura delle porteIP_ADDRESS
: l'indirizzo IP della regola di inoltro, che deve provenire dall'intervallo di indirizzi IP della subnet del produttore
Pubblica il servizio di mappatura delle porte
Per rendere disponibile il servizio di mappatura delle porte ai consumatori, pubblicalo creando un collegamento di servizio. Quando crei l'attacco del servizio, specifica la regola di forwarding associata al servizio di mappatura delle porte.