Crea servicios de asignación de puertos
En esta página, se describe cómo los productores de servicios pueden publicar servicios que usan asignaciones de puertos de Private Service Connect.
La asignación de puertos de Private Service Connect permite que los clientes consumidores se comuniquen de forma privada con puertos de servicio específicos en VMs de productores específicos a través de un solo extremo de Private Service Connect.
Antes de comenzar
- Debes habilitar la API de Compute Engine en tu proyecto.
- Debes crear VMs para cada extremo de red que quieres conectar a la asignación de puertos NEG. Todas las VMs deben estar en la misma región.
- Lee Acerca de los servicios publicados.
- Lee Información sobre la asignación de puertos de Private Service Connect.
Roles requeridos
Para obtener los permisos que necesitas a la hora de prepararte para publicar un servicio con la asignación de puertos de Private Service Connect, pídele al administrador que te otorgue los siguientes roles de IAM en el proyecto del productor:
-
Administrador de balanceador de cargas de Compute (
roles/compute.loadBalancerAdmin
) -
Administrador de la red de Compute (
roles/compute.networkAdmin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Crea y publica un servicio de asignación de puertos
Los servicios de asignación de puertos tienen parámetros de configuración similares a los balanceadores de cargas de red de transferencia internos, pero el tráfico no tiene balanceo de cargas. Para crear y publicar un servicio de asignación de puertos, haz lo siguiente:
- Crea un NEG de asignación de puertos.
- Agrega extremos de red al NEG de asignación de puertos.
- Crea un servicio de asignación de puertos.
- Publica el servicio de asignación de puertos.
Crea un NEG de asignación de puertos.
Un NEG de red de asignación de puertos
es un NEG regional con el tipo de extremo de red GCE_VM_IP_PORTMAP
. No
es posible cambiar el tipo de NEG de asignación de puertos después de crearlo.
Cuando creas un NEG de asignación de puertos, debes elegir una subred. Los extremos de red que asocias con el NEG de asignación de puertos deben tener una interfaz de red principal en esta subred.
Consola
En la consola de Trusted Cloud , ve a la página Grupos de extremos de red.
Haz clic en Crear un grupo de extremos de red.
Ingresa un Nombre.
Haz clic en Tipo de grupo de extremos de red y, luego, selecciona NEG de asignación de puertos (regional).
Selecciona una región.
Selecciona una red.
Selecciona una subred.
Haz clic en Crear.
gcloud
Usa el
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
Reemplaza lo siguiente:
NEG
: el nombre del NEG de asignación de puertosREGION
: la región del NEG de asignación de puertosNETWORK
: la red de VPC de la NEG de asignación de puertosSUBNET
: la subred del NEG de asignación de puertos
API
Envía una solicitud POST
al
método regionNetworkEndpointGroups.insert
.
POST https://compute.apis-s3ns.fr/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" }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto del NEG de asignación de puertosREGION
: la región del NEG de asignación de puertosNEG
: el nombre del NEG de asignación de puertosNETWORK
: la red de VPC de la NEG de asignación de puertosSUBNET
: la subred del NEG de asignación de puertos
Agrega extremos de red al NEG de asignación de puertos
Crea uno o más extremos de red con asignaciones de puertos y conéctalos al NEG de asignación de puertos.
Los extremos de red para los NEG de asignación de puertos son zonales y deben cumplir con los siguientes requisitos:
- Cada extremo de red se refiere a una VM de Compute Engine que tiene una interfaz de red principal en la misma subred que el NEG de asignación de puertos.
- Cada extremo de red hace referencia a un puerto de destino del cliente único.
Cada extremo de red debe hacer referencia a una combinación única de puertos de servicio y VM.
Consola
En la consola de Trusted Cloud , ve a la página Grupos de extremos de red.
Haz clic en el nombre del NEG de asignación de puertos que deseas actualizar.
Haz clic en Agregar extremos de red.
Haz clic en Instancia de VM y, luego, selecciona una VM.
Haz clic en Puerto de VM 1 y, luego, ingresa un puerto de servicio.
Haz clic en Puerto del cliente 1 y, luego, escribe un puerto de destino del cliente.
Por cada extremo de red adicional que quieras agregar, haz clic en Agregar extremo de red y, luego, escribe los detalles del extremo de red.
Haz clic en Crear.
gcloud
Usa el
comando network-endpoint-groups update
. Incluye una marca --add-endpoint
para cada
extremo de red que quieres conectar.
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
Reemplaza lo siguiente:
NEG
: el nombre del NEG de asignación de puertosREGION
: la región del NEG de asignación de puertosCLIENT_DESTINATION_PORT_1
: el puerto de destino del cliente del primer extremo de redPROJECT_ID
: el ID del proyecto del proyecto del productorZONE_1
: la zona del primer extremo de redVM_1_NAME
: el nombre de la VM de destino para el primer extremo de redVM_1_PORT
: el puerto de servicio del primer extremo de redCLIENT_DESTINATION_PORT_2
: el puerto de destino del cliente del segundo extremo de redZONE_2
: la zona del segundo extremo de redVM_2_NAME
: el nombre de la VM de destino para el segundo extremo de redVM_2_PORT
: el puerto de servicio del segundo extremo de red
API
Envía una solicitud POST
al
método regionNetworkEndpointGroups.attachNetworkEndpoints
.
POST https://compute.apis-s3ns.fr/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 } ] }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto del proyecto del productorREGION
: la región del NEG de asignación de puertosNEG
: el nombre del NEG de asignación de puertosCLIENT_DESTINATION_PORT_1
: el puerto de destino del cliente del primer extremo de redZONE_1
: la zona del primer extremo de redVM_1_NAME
: el nombre de la VM de destino para el primer extremo de redSERVICE_PORT_1
: el puerto de servicio del primer extremo de redCLIENT_DESTINATION_PORT_2
: el puerto de destino del cliente del segundo extremo de redZONE_2
: la zona del segundo extremo de redVM_2_NAME
: el nombre de la VM de destino para el segundo extremo de redSERVICE_PORT_2
: el puerto de servicio del segundo extremo de red
Crea un servicio de asignación de puertos.
Para crear un servicio de asignación de puertos, completa los siguientes pasos.
No puedes cambiar el NEG de asignación de puertos asociado con un servicio de backend después de agregar el NEG. Sin embargo, puedes actualizar los extremos de red del NEG de asignación de puertos.
No puedes actualizar la conexión de una regla de reenvío después de crearla. Si necesitas conectarte a un servicio de backend diferente, borra la regla de reenvío y, luego, crea una nueva.
Consola
Inicia tu configuración
En la consola de Trusted Cloud , ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de red (TCP/UDP/SSL) y haz clic en Siguiente.
- En Proxy o transferencia, selecciona Balanceador de cargas de transferencias y haz clic en Siguiente.
- En Orientado al público o para uso interno, selecciona Interno y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Ingresa un nombre de balanceador de cargas.
- Selecciona una región.
- Selecciona una red.
Configuración de backend
- En Tipo de backend, selecciona Grupo de extremos de red de asignación de puertos.
- Selecciona un Grupo de extremos de red de asignación de puertos.
Configuración de frontend
- Haz clic en Configuración de frontend.
- Escribe un nombre (opcional).
- Escribe una descripción (opcional).
- Selecciona un protocolo.
- Selecciona una subred.
- Haz clic en Listo.
- Haz clic en Crear.
gcloud
Para crear un servicio de backend, usa el comando
backend-services create
.gcloud compute backend-services create SERVICE \ --load-balancing-scheme=internal \ --region=REGION \ --network=NETWORK
Reemplaza lo siguiente:
SERVICE
: el nombre del servicio de backendREGION
: la región del servicio de backendNETWORK
: la red de VPC de productor del servicio de backend
Para agregar tu NEG de asignación de puertos al servicio de backend, usa el comando
backend-services add-backend
.No puedes agregar varios NEG de asignación de puertos a un solo servicio de backend.
gcloud compute backend-services add-backend SERVICE \ --network-endpoint-group=NEG \ --network-endpoint-group-region=REGION
Reemplaza
NEG
por el nombre del NEG de asignación de puertos.Si quieres crear una regla de reenvío para tu servicio de asignación de puertos, usa el comando
forwarding-rules create
.La regla de reenvío debe configurarse para reenviar el tráfico a todos los puertos de destino del cliente.
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
Reemplaza lo siguiente:
RULE
: el nombre de la regla de reenvíoPROTOCOL
: el protocolo de la regla de reenvío, que puede serTCP
oUDP
SUBNET
: la subred del productor, que debe ser la misma subred que está asociada con el NEG de asignación de puertosIP_ADDRESS
: la dirección IP de la regla de reenvío que debe provenir del rango de direcciones IP de la subred del productor
API
Para crear un servicio de backend, envía una solicitud
POST
al métodoregionBackendServices.insert
.POST https://compute.apis-s3ns.fr/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices { "name": "SERVICE", "loadBalancingScheme": "INTERNAL", "network": "projects/PROJECT_ID/global/networks/NETWORK" }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto de servicios de backendREGION
: la región del servicio de backendSERVICE
: el nombre del servicio de backendNETWORK
: la red de VPC del productor
Para agregar tu NEG de asignación de puertos al servicio de backend, envía una solicitud
PATCH
al métodoregionBackendServices.patch
.No puedes agregar varios NEG de asignación de puertos a un solo servicio de backend.
PATCH https://compute.apis-s3ns.fr/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/SERVICE { "backends": [ { "group": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG" } ] }
Reemplaza
NEG
por el nombre de tu NEG de asignación de puertos.Si quieres crear una regla de reenvío para tu servicio de asignación de puertos, envía una solicitud
POST
al métodoforwardingRules.insert
.La regla de reenvío debe configurarse para reenviar el tráfico a todos los puertos de destino del cliente.
POST https://compute.apis-s3ns.fr/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" }
Reemplaza lo siguiente:
RULE
: el nombre de la regla de reenvíoPROTOCOL
: el protocolo de la regla de reenvío, que puede serTCP
oUDP
SUBNET
: la subred del productor, que debe ser la misma subred que está asociada con el NEG de asignación de puertosIP_ADDRESS
: la dirección IP de la regla de reenvío que debe provenir del rango de direcciones IP de la subred del productor
Publica el servicio de asignación de puertos.
Para que tu servicio de asignación de puertos esté disponible para los consumidores, publica el servicio creando un adjunto de servicio. Cuando creas el adjunto de servicio, especifica la regla de reenvío asociada con tu servicio de asignación de puertos.