Configurar referencias entre proyectos
Este documento solo se aplica a Cloud Service Mesh con las APIs de enrutamiento de servicios Google Cloud. No utilices este documento si vas a configurar Cloud Service Mesh con las APIs de Istio.
En algunos casos, la configuración de la malla de servicios incluye servicios que están en proyectos diferentes. Por ejemplo, en las implementaciones de VPC compartida o de VPC emparejada, cada propietario de un proyecto puede definir su propio conjunto de servicios para que estén disponibles para el resto de los proyectos.
Mesh
(haz clic en la imagen para ampliarla)Esta configuración se denomina configuración entre proyectos porque se combinan varios recursos definidos en diferentes proyectos para formar una única configuración que se puede servir a un proxy de Envoy o a un cliente gRPC sin proxy.
En las siguientes instrucciones se usan los recursos Mesh
y HTTPRoute
, pero se pueden aplicar al recurso Gateway
y a los recursos GRPCRoute
y TCPRoute
.
Configurar el recurso Mesh
Designa un proyecto como proyecto host en el que administrar el recurso Mesh
. Cualquier cuenta de servicio que tenga permisos para crear, actualizar o eliminar recursos Mesh
en este proyecto puede controlar las configuraciones de enrutamiento asociadas a los recursos Mesh
de este proyecto.
En el archivo
shared-mesh.yaml
, crea una especificaciónMesh
.name: shared-mesh interceptionPort: 15001
Define un recurso
Mesh
en este proyecto.gcloud network-services meshes import shared-mesh \ --source=shared-mesh.yaml \ --location=global
Anota el URI completo del recurso
Mesh
, ya que los propietarios del servicio necesitan el URI para adjuntar sus rutas a esteMesh
./projects/HOST_PROJECT_NUMBER/locations/global/meshes/shared-mesh
Concede el permiso de gestión de identidades y accesos
networkservices.meshes.use
a las cuentas de servicio entre proyectos que deban poder adjuntar la información de sus servicios a esteMesh
.Mesh
gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER --member='HTTP_ROUTE_SERVICE_OWNER_ACCOUNT' --role='roles/compute.networkAdmin'
Todos los propietarios de servicios que tengannetworkservices.meshes.use
permiso pueden añadir sus reglas de enrutamiento a este recurso.Mesh
Configurar el enrutamiento en los proyectos de servicio
Cada propietario de un servicio debe crear uno o varios servicios de backend y recursos Route
en su proyecto, de forma similar al ejemplo de la
guía de configuración de proxies adicionales.
La única diferencia es que cada recurso HTTPRoute
, GRPCRoute
o TCPRoute
debe tener el URI del recurso Mesh
del proyecto host en el campo meshes
.
Utiliza la siguiente información para rellenar el campo
meshes
. Puedes usar el ID o el número del proyecto.echo "name: sharedvpc-http-route hostnames: - helloworld-gce meshes: - /projects/HOST_PROJECT_NUMBER/locations/global/meshes/shared-mesh rules: - action: destinations: - serviceName: \"url/of/the/service\"" | \ gcloud network-services http-routes import sharedvpc-http-route \ --source=- \ --location=global
Crear los servicios de cliente en los proyectos de servicio
Cuando configuras un cliente de Cloud Service Mesh que se encuentra en un proyecto de servicio, la configuración de arranque debe especificar el número del proyecto en el que se encuentra el recurso Mesh
y el nombre Mesh
. Este requisito se aplica tanto a los proxies Envoy como a los despliegues de gRPC sin proxy.
En los despliegues de Envoy, usa la opción --service-proxy:project-number
.
Siguientes pasos
- Para obtener información sobre cómo enumerar los recursos de ruta asociados a un recurso
Mesh
oGateway
, consulta Enumerar recursos deRoute
.