Configure referências entre projetos
Este documento aplica-se apenas à Cloud Service Mesh com as Google Cloud APIs de encaminhamento de serviços. Não use este documento se estiver a configurar o Cloud Service Mesh com as APIs Istio.
Em alguns cenários, a configuração da malha de serviços inclui serviços que estão em projetos diferentes. Por exemplo, nas implementações de VPC partilhada ou VPC com intercâmbio, é possível que cada proprietário do projeto defina o seu próprio conjunto de serviços para disponibilizar estes serviços a todos os outros projetos.
Mesh (clique para aumentar)Esta configuração é denominada configuração entre projetos porque vários recursos definidos em projetos diferentes são combinados para formar uma configuração única que pode ser fornecida a um proxy Envoy ou a um cliente gRPC sem proxy.
As instruções seguintes usam os recursos Mesh e HTTPRoute, mas podem ser aplicadas ao recurso Gateway e aos recursos GRPCRoute e TCPRoute.
Configure o recurso Mesh
Designar um projeto como o projeto anfitrião onde administra o recurso Mesh. Qualquer conta de serviço com as autorizações para criar, atualizar ou eliminar recursos Mesh neste projeto pode controlar as configurações de encaminhamento anexadas a recursos Mesh neste projeto.
No ficheiro
shared-mesh.yaml, crie uma especificaçãoMesh.name: shared-mesh interceptionPort: 15001
Defina um recurso
Meshneste projeto.gcloud network-services meshes import shared-mesh \ --source=shared-mesh.yaml \ --location=global
Anote o URI completo do recurso
Mesh, porque os proprietários de serviços precisam do URI para anexar os respetivos trajetos a esteMesh./projects/HOST_PROJECT_NUMBER/locations/global/meshes/shared-mesh
Conceda a autorização de IAM
networkservices.meshes.usepara esteMeshàs contas de serviço entre projetos que devem poder anexar as respetivas informações de serviços a esteMesh.gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER --member='HTTP_ROUTE_SERVICE_OWNER_ACCOUNT' --role='roles/compute.networkAdmin'
Todos os proprietários de serviços que tenhamnetworkservices.meshes.use
autorização concedida podem adicionar as respetivas regras de encaminhamento a este recursoMesh.
Configure o encaminhamento nos projetos de serviço
Cada proprietário do serviço tem de criar um ou mais serviços de back-end e Route
recursos no respetivo projeto, semelhantes ao exemplo no
guia de configuração do proxy sidecar.
A única diferença é que cada recurso HTTPRoute, GRPCRoute ou TCPRoute tem de ter o URI do recurso Mesh do projeto anfitrião no campo meshes.
Use o seguinte para preencher o campo
meshes. Pode usar o ID do projeto ou o número do projeto.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
Crie os serviços de cliente nos projetos de serviço
Quando configura um cliente da Cloud Service Mesh localizado num projeto de serviço, a configuração de arranque tem de especificar o número do projeto onde o recurso Mesh está localizado e o nome Mesh. Este requisito aplica-se às
implementações do proxy Envoy e às
implementações do gRPC sem proxy.
Com implementações do Envoy, use a opção --service-proxy:project-number.
O que se segue?
- Para informações sobre como listar recursos de trajetos associados a um recurso
MeshouGateway, consulte o artigo Liste recursosRoute.