Configura i riferimenti tra progetti
Questo documento riguarda solo 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 in VPC condiviso o VPC in peering, ogni proprietario del progetto può definire il proprio set di servizi per rendere questi servizi disponibili a tutti gli altri progetti.
Questa configurazione è chiamata configurazione cross-project perché più risorse definite in diversi progetti vengono combinate per formare un'unica configurazione che può essere pubblicata su un proxy Envoy o un client gRPC senza proxy.
Le seguenti istruzioni utilizzano le risorse Mesh
e HTTPRoute
, ma
possono essere applicate alla risorsa Gateway
e alle
risorse GRPCRoute
e TCPRoute
.
Configurazione della risorsa Mesh
Specifica un progetto come progetto host in cui amministri 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 collegate 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
Annota l'URI completo della risorsa
Mesh
, perché i proprietari dei servizi hanno bisogno dell'URI per collegare le proprie route a questoMesh
./projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh
Concedi l'autorizzazione IAM
networkservices.meshes.use
per questoMesh
agli account di servizio tra progetti che devono essere in grado di collegare le proprie informazioni sui 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 del servizio a cui è stata concessanetworkservices.meshes.use
l'autorizzazione possono aggiungere le proprie regole di routing a questa
risorsa Mesh
.
Configura il routing nei progetti di servizio
Ciascun proprietario del servizio deve creare uno o più servizio di backend e Route
risorse nel proprio progetto, come nell'esempio 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
.
Usa il codice seguente per compilare il campo
meshes
. Puoi usare l'ID 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 del 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 che 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 Elencare le risorse diRoute
. Questa funzionalità è in anteprima.