Configurar referências de projetos cruzados
Este documento se aplica apenas ao Cloud Service Mesh com as APIs de roteamento de serviço do Google Cloud. Não use este documento se você estiver configurando o Cloud Service Mesh com as APIs do Istio.
Em alguns cenários, a configuração da malha de serviço inclui serviços que estão em projetos diferentes. Por exemplo, em implantações de VPC compartilhada ou de VPC com peering, cada proprietário do projeto pode definir o próprio conjunto de serviços para disponibilizar esses serviços a todos os outros projetos.
Essa configuração é chamada de configuração entre projetos porque vários recursos definidos em projetos diferentes são combinados para formar uma única configuração que pode ser veiculada para um proxy Envoy ou gRPC sem proxy. .
As instruções a seguir usam os recursos Mesh
e HTTPRoute
, mas podem ser aplicadas aos recursos Gateway
e GRPCRoute
e TCPRoute
.
Configurar o recurso Mesh
Designe um projeto como o projeto host em que você administra o
recurso Mesh
. Qualquer conta de serviço com as permissões para criar,
atualizar ou excluir recursos Mesh
neste projeto pode controlar as configurações de roteamento
anexadas aos recursos Mesh
neste projeto.
No arquivo
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 as rotas a esseMesh
./projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh
Conceda a permissão
networkservices.meshes.use
do IAM para esseMesh
às contas de serviço entre projetos que poderão anexar as informações de serviço 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ço com permissão networkservices.meshes.use
concedida podem adicionar as regras de roteamento a este recurso Mesh
.
Configurar o roteamento nos projetos de serviço
Cada proprietário de serviço precisa criar um ou mais serviço de back-end e recursos Route
no projeto, de forma semelhante ao exemplo na
guia de configuração de proxy sidecar.
A única diferença é que cada recurso HTTPRoute
, GRPCRoute
ou TCPRoute
precisa ter o URI do recurso Mesh
do projeto host no campo
meshes
.
Use o seguinte para preencher o campo
meshes
. Use o ID 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
Criar os serviços de cliente nos projetos de serviço
Quando você configura um cliente do Cloud Service Mesh localizado em um projeto
de serviço, a configuração de inicialização precisa especificar o número do projeto em que o
recurso Mesh
está localizado e o nome Mesh
. Esse requisito se aplica a
implantações do proxy Envoy
e do gRPC sem proxy.
Com implantações do Envoy, use a opção --service-proxy:project-number
.
A seguir
- Para saber como listar recursos de rota associados a um recurso
Mesh
ouGateway
, consulte Listar recursosRoute
. Esse recurso está na visualização.