Configura i riferimenti tra progetti

Questo documento riguarda solo Cloud Service Mesh con Google Cloud le API di routing dei servizi. Non usare questo documento se stai configurando Cloud Service Mesh con le API Istio.

In alcuni scenari, la configurazione del mesh di servizi include servizi che in progetti diversi. Ad esempio, nel VPC condiviso o in VPC in peering di deployment, ogni proprietario del progetto può definire il proprio set per renderli disponibili a tutti gli altri progetti.

Configurazione tra progetti con le risorse mesh
Configurazione tra progetti con Mesh risorse (fai clic per ingrandire)

Questa configurazione è chiamata configurazione cross-project perché combinare più risorse definite in diversi progetti per singola configurazione che può essere fornita a un proxy Envoy o a gRPC senza proxy di alto profilo.

Le seguenti istruzioni utilizzano le risorse Mesh e HTTPRoute, ma può essere applicato alla risorsa Gateway e alla GRPCRoute e TCPRoute di risorse.

Configurazione della risorsa Mesh

Specifica un progetto come progetto host in cui amministri Mesh risorsa. Qualsiasi account di servizio con le autorizzazioni di creazione, aggiornare o eliminare Mesh risorse in questo progetto possono controllare il routing configurazioni collegate a Mesh risorse in questo progetto.

  1. Nel file shared-mesh.yaml, crea una specifica Mesh.

    name: shared-mesh
    interceptionPort: 15001
    
  2. Definisci una risorsa Mesh in questo progetto.

    gcloud network-services meshes import shared-mesh \
      --source=shared-mesh.yaml \
      --location=global
    
  3. Annota l'URI completo della risorsa Mesh, perché i proprietari del servizio necessario l'URI per collegare le proprie route a questo Mesh.

    /projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh
    
  4. Concedi l'autorizzazione IAM networkservices.meshes.use per questo Mesh agli account di servizio tra progetti che devono poter collegare informazioni sui servizi a questo Mesh.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_NUMBER]
      --member='[HTTP_ROUTE_SERVICE_OWNER_ACCOUNT]'
      --role='roles/compute.networkAdmin'
    

Tutti i proprietari del servizio con networkservices.meshes.use l'autorizzazione concessa loro è in grado di aggiungere le regole di routing a questo Mesh risorsa.

Configura il routing nei progetti di servizio

Ogni proprietario del servizio deve creare uno o più servizio di backend e Route di risorse nel loro progetto, come nell'esempio guida alla configurazione del proxy collaterale. L'unica differenza è che ogni HTTPRoute, GRPCRoute o TCPRoute La risorsa deve avere l'URI della risorsa Mesh del progetto host nell'elemento meshes .

  1. Usa il codice seguente 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 servizio la configurazione del bootstrap deve specificare il numero del progetto in cui La risorsa Mesh si trova e il nome Mesh. Questo requisito si applica sia a proxy Envoy e 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 percorso associate a Mesh o Gateway risorsa, vedi Elenco di risorse Route. Questa funzionalità è in anteprima.