Configurare i riferimenti tra progetti
Questo documento si applica solo a Cloud Service Mesh con le API di routing dei servizi Google Cloud. Non utilizzare questo documento se stai configurando Cloud Service Mesh con le API Istio.
In alcuni scenari, la configurazione del mesh di servizi include servizi che si trovano in progetti diversi. Ad esempio, nei deployment di VPC con peering o VPC condiviso, ogni proprietario del progetto può definire il proprio insieme di servizi da rendere disponibile per tutti gli altri progetti.
Questa configurazione è chiamata tra progetti perché più risorse definite in progetti diversi vengono combinate per formare una singola configurazione che può essere inviata a un proxy Envoy o a un client gRPC senza proxy.
Le istruzioni riportate di seguito utilizzano le risorse Mesh
e HTTPRoute
, ma possono essere applicate alle risorse Gateway
, GRPCRoute
e TCPRoute
.
Configurazione della risorsa Mesh
Designa un progetto come progetto host in cui amministrare la risorsa Mesh
. Qualsiasi account di servizio con le autorizzazioni per creare,
aggiornare o eliminare risorse Mesh
in questo progetto può controllare le configurazioni di routing
associate alle risorse Mesh
in questo progetto.
Nel file
shared-mesh.yaml
, crea una specificaMesh
.name: shared-mesh interceptionPort: 15001
Definisci una risorsa
Mesh
in questo progetto.gcloud network-services meshes import shared-mesh \ --source=shared-mesh.yaml \ --location=global
Prendi nota dell'URI completo della risorsa
Mesh
, perché i proprietari di servizi devono avere l'URI per collegare i propri percorsi a questoMesh
./projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh
Concedi l'autorizzazione IAM
networkservices.meshes.use
per questoMesh
ai service account tra progetti che devono essere in grado di associare le informazioni sui propri servizi a questoMesh
.gcloud projects add-iam-policy-binding [HOST_PROJECT_NUMBER] --member='[HTTP_ROUTE_SERVICE_OWNER_ACCOUNT]' --role='roles/compute.networkAdmin'
Tutti i proprietari di servizi a cui è stata concessa l'networkservices.meshes.use
autorizzazione possono aggiungere le proprie regole di routing a questa Mesh
risorsa.
Configurare il routing nei progetti di servizio
Ogni proprietario del servizio deve creare uno o più servizio di backend e risorse Route
nel proprio progetto, in modo simile all'esempio riportato nella
guida alla configurazione dei proxy sidecar.
L'unica differenza è che ogni risorsa HTTPRoute
, GRPCRoute
o TCPRoute
deve avere l'URI della risorsa Mesh
del progetto host nel campo meshes
.
Utilizza quanto segue per compilare il campo
meshes
. Puoi utilizzare l'ID progetto o il numero del progetto.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
Crea i servizi client nei progetti di servizio
Quando configuri un client Cloud Service Mesh che si trova in un progetto di servizio, la configurazione di bootstrap deve specificare il numero del progetto in cui si trova la risorsa Mesh
e il nome Mesh
. Questo requisito si applica sia al
proxy Envoy sia ai
deployment gRPC senza proxy.
Con i deployment di Envoy, utilizza l'opzione --service-proxy:project-number
.
Passaggi successivi
- Per informazioni su come elencare le risorse di route associate a una risorsa
Mesh
oGateway
, consulta Elenca le risorseRoute
. Questa funzionalità è in anteprima.