Configure referências entre projetos
Este documento aplica-se apenas à Cloud Service Mesh com as APIs de encaminhamento de serviços. Google CloudNão use este documento se estiver a configurar a 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 publicada num proxy Envoy ou num 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
Mesh
neste 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.use
para 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 do 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 ao proxy Envoy e às implementações 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
Mesh
ouGateway
, consulte o artigo Liste recursosRoute
.