Preparati a configurare Traffic Director con i servizi gRPC proxy
La configurazione di Traffic Director prevede diverse fasi. Questo documento descrive la prima fase: le istruzioni per prepararsi a configurare Traffic Director con applicazioni gRPC proxy. Questo documento si applica se utilizzi le API meno recenti o le nuove API di routing dei servizi, che sono in anteprima. Le altre fasi sono indicate nelle guide specifiche della piattaforma elencate nella sezione Continuare la procedura di configurazione più avanti in questo documento.
Prima di leggere questa guida, acquisisci familiarità con i seguenti documenti, che forniscono una panoramica sull'utilizzo di Traffic Director con le applicazioni gRPC senza proxy:
- Panoramica di Traffic Director
- Panoramica di Traffic Director con i servizi gRPC proxyless
- Panoramica delle nuove API di routing dei servizi di Traffic Director
Prerequisiti
Prepara l'ambiente completando le seguenti attività:
- Abilitare la fatturazione.
- Concedi le autorizzazioni richieste.
- Abilitare l'API Traffic Director per il tuo progetto.
- Assicurati che l'account di servizio disponga delle autorizzazioni sufficienti per accedere all'API Traffic Director.
Le sezioni seguenti forniscono istruzioni per ogni attività.
Abilita fatturazione
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Per ulteriori informazioni, consulta Abilitare, disabilitare o modificare la fatturazione per un progetto.
Concedi le autorizzazioni IAM richieste
Devi disporre di autorizzazioni IAM (Identity and Access Management) sufficienti per creare istanze VM e modificare una rete per configurare Traffic Director. Se hai il ruolo di Proprietario o Editor (roles/owner
o roles/editor
) nel progetto in cui stai attivando Traffic Director, disponi automaticamente delle autorizzazioni corrette.
In caso contrario, devi avere tutti i ruoli IAM mostrati nella tabella seguente. Se hai questi ruoli, hai anche le autorizzazioni associate, come descritto nella documentazione di IAM di Compute Engine.
Incarico | Ruolo richiesto |
---|---|
Imposta il criterio IAM per un account di servizio. | Amministratore account di servizio
( roles/iam.serviceAccountAdmin ) |
Ottieni la risorsa relativa alla regola di forwarding globale. | Visualizzatore rete Compute
( roles/compute.networkViewer ) |
Attiva Traffic Director. | Amministratore Service Usage
( roles/serviceusage.serviceUsageAdmin ) |
Crea reti, subnet e componenti del bilanciatore del carico. | Amministratore rete Compute
( roles/compute.networkAdmin ) |
Aggiungi e rimuovi le regole firewall. | Amministratore sicurezza di Compute
( roles/compute.securityAdmin ) |
Creare istanze. | Amministratore istanze Compute
( roles/compute.instanceAdmin ) |
Creare e modificare un cluster GKE, se utilizzi i pod. | Amministratore cluster
( roles/container.clusterAdmin ) |
Consente l'accesso agli account di servizio. | Utente account di servizio
( roles/iam.serviceAccountUser |
Inoltre, le VM di Compute Engine devono avere l'ambito https://www.googleapis.com/auth/cloud-platform
. Per ulteriori informazioni, consulta la pagina Risoluzione dei problemi di deployment che utilizzano gRPC senza proxy.
Abilita l'API Traffic Director
Console
Nella console Google Cloud, vai alla pagina Libreria API del tuo progetto.
Nel campo Cerca API e servizi, inserisci
Traffic Director
.Nell'elenco dei risultati di ricerca, fai clic su API Traffic Director. Se non vedi l'API Traffic Director in elenco, significa che non disponi delle autorizzazioni necessarie per abilitarla.
Nella pagina API Traffic Director, fai clic su Attiva.
gcloud
Esegui questo comando:
gcloud services enable trafficdirector.googleapis.com
Abilita l'account di servizio per accedere all'API Traffic Director
Quando configuri il piano dati e lo colleghi a Traffic Director, i client xDS si connettono al server xDS trafficdirector.googleapis.com
. Questi client xDS presentano un'identità dell'account di servizio al server xDS per garantire che le comunicazioni tra il piano dati e il piano di controllo siano autorizzate.
Per una VM di Compute Engine, il client xDS utilizza l'account di servizio assegnato alla VM.
A seconda della versione del protocollo xDS utilizzata dall'applicazione gRPC, devi disporre delle autorizzazioni seguenti. La versione del protocollo xDS è specificata nel file Bootstrap. Ti consigliamo di configurare l'applicazione utilizzando xDS v3 o di eseguire la migrazione a xDS v3 se disponi di un deployment esistente che utilizza xDS v2. Inoltre, le nuove API di routing dei servizi richiedono xDS v3.
Quando utilizzi xDS v3, l'account di servizio utilizzato dalle applicazioni gRPC deve avere le autorizzazioni
trafficdirector.networks.reportMetrics
etrafficdirector.networks.getConfigs
. Puoi utilizzare il ruolo di Client Traffic Director di IAM (roles/trafficdirector.client
), che include entrambe le autorizzazioni.Quando utilizzi xDS v2, l'account di servizio utilizzato dalle applicazioni gRPC deve avere l'autorizzazione IAM
compute.globalForwardingRules.get
a livello di progetto. Puoi concedere questa autorizzazione anche assegnando il ruolo Visualizzatore rete Compute (roles/compute.networkViewer
) all'account di servizio.
Console
Nella console Google Cloud, vai alla pagina IAM e amministrazione.
Seleziona il progetto.
Identifica l'account di servizio a cui vuoi aggiungere un ruolo:
- Se l'account di servizio non è già presente nell'elenco Membri, non gli è stato assegnato alcun ruolo. Fai clic su Aggiungi e inserisci l'indirizzo email dell'account di servizio.
- Se l'account di servizio è già nell'elenco Membri, ha ruoli esistenti. Seleziona l'account di servizio, quindi fai clic sulla scheda Ruoli.
Espandere il ruolo. Fai clic su
Modifica in corrispondenza dell'account di servizio che vuoi modificare.Seleziona il ruolo Altro > Client Traffic Director.
Per applicare il ruolo all'account di servizio, fai clic su Salva.
gcloud
Esegui questo comando:
gcloud projects add-iam-policy-binding PROJECT \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL \ --role=roles/trafficdirector.client
Sostituisci quanto segue:
PROJECT
: inseriscigcloud config get-value project
SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio
Successivamente, segui questa procedura generale per configurare le applicazioni gRPC proxyless in un mesh di servizi:
- Aggiorna i client gRPC all'ultima versione di gRPC, con l'applicazione patch più recente.
- Aggiorna lo schema del resolver del nome gRPC dei tuoi client quando crei un canale e specifica un file di bootstrap di Traffic Director.
- Configurare le risorse Traffic Director e Cloud Load Balancing.
Questo documento fornisce informazioni per completare i primi due passaggi. Il processo di configurazione che utilizzi per il passaggio 3 dipende dal fatto che il deployment utilizzi VM di Compute Engine o gruppi di endpoint di rete (NEG) GKE.
Versioni e lingue gRPC supportate
gRPC è un progetto open source e il relativo supporto di rilascio è descritto nella sezione relativa alle domande frequenti di gRPC. Ti consigliamo di utilizzare la versione più recente di gRPC per assicurarti che le vulnerabilità di sicurezza note siano mitigate. Questo assicura inoltre che le tue applicazioni abbiano accesso alle ultime funzionalità supportate da Traffic Director. Le funzionalità del mesh di servizi supportate in varie implementazioni e versioni di gRPC sono elencate su GitHub. Per un elenco delle funzionalità e dei linguaggi gRPC supportati con Traffic Director e i servizi gRPC senza proxy, consulta Funzionalità di Traffic Director.
Traffic Director mantiene la compatibilità con le versioni attuali e supportate di gRPC e tenta di essere compatibile con le versioni gRPC precedenti a un anno, in conformità ai Termini di servizio di Google Cloud Platform.
Aggiorna i tuoi client gRPC
Aggiorna la libreria gRPC nella tua applicazione alla versione che supporta le funzionalità richieste. Per i dettagli, consulta la sezione precedente.
Aggiungere il risolutore xDS come dipendenza per le tue applicazioni gRPC. I requisiti di lingua per Java e Go sono indicati nelle sezioni che seguono. Per le altre lingue non sono previsti requisiti aggiuntivi.
Requisiti Java
In Java, se utilizzi Gradle, aggiungi la dipendenza grpc-xds
al file build.gradle
. Sostituisci LATEST_GRPC_VERSION
con l'ultima versione di gRPC.
dependencies { runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION' }
Se utilizzi Maven, aggiungi quanto segue alla sezione <dependencies>
di pom.xml. Sostituisci LATEST_GRPC_VERSION
con l'ultima versione di gRPC.
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-xds</artifactId> <version>LATEST_GRPC_VERSION</version> <scope>runtime</scope> </dependency>
Requisiti per Go
Se utilizzi Go, importa il pacchetto xds Go.
Imposta il resolver del nome gRPC per utilizzare xds
Imposta o modifica le tue applicazioni gRPC per utilizzare lo schema di risoluzione dei nomi xds
nell'URI di destinazione, anziché DNS o qualsiasi altro schema di resolver. A tale scopo, utilizza il prefisso xds:///
nel nome della destinazione quando crei un canale gRPC.
Il bilanciamento del carico per i client gRPC si basa sul singolo canale.
Includi il nome del servizio utilizzato nell'URI di destinazione nella configurazione di Traffic Director. Ad esempio, in Java crei il canale utilizzando questa struttura, in cui il nome del servizio è helloworld
:
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
Crea e configura un file di bootstrap
Lo schema del resolver xds
indica all'applicazione gRPC di connettersi a Traffic Director per ottenere informazioni di configurazione per il servizio di destinazione. Pertanto, procedi nel seguente modo:
- Crea un file di bootstrap, come illustrato nell'esempio seguente. Questo file indica a gRPC di connettersi a un server xDS (Traffic Director) per ottenere la configurazione per servizi specifici.
- Definisci una variabile di ambiente denominata
GRPC_XDS_BOOTSTRAP
, con il nome del file bootstrap come valore della variabile di ambiente.
Le istruzioni di configurazione contengono esempi che mostrano come generare il file di bootstrap. Per comodità, puoi utilizzare la versione più recente del generatore di bootstrap gRPC di Traffic Director.
Oltre all'applicazione, deve essere incluso un file bootstrap contenente le informazioni necessarie per connettersi a Traffic Director. Un file Bootstrap di esempio ha il seguente aspetto:
{ "xds_servers": [ { "server_uri": "trafficdirector.googleapis.com:443", "channel_creds": [ { "type": "google_default" } ], "server_features": ["xds_v3"] } ], "node": { "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18", "metadata": { "TRAFFICDIRECTOR_NETWORK_NAME": "default" }, "locality": { "zone": "us-central1-a" } } }
La tabella seguente illustra i campi nel file bootstrap.
Campo | Valore e descrizione |
---|---|
xds_servers |
Un elenco di server xDS. gRPC utilizza solo il primo dell'elenco. |
server_uri |
Specificane almeno uno. gRPC tenta di connettersi solo al primo server xDS nell'elenco xds_servers . Il valore predefinito è trafficdirector.googleapis.com:443 . |
channel_creds |
Credenziali da utilizzare con il server xDS. |
type |
Utilizza il valore google_default . Per saperne di più su come vengono ottenute le credenziali, consulta la Guida introduttiva all'autenticazione. |
server_features |
Un elenco delle funzionalità supportate dal server, come il supporto xDS v3. Il valore predefinito è vuoto. |
node |
Informazioni sul client che si connette al server xDS. |
id |
projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID Specifica una stringa univoca come valore di |
metadata |
Informazioni specifiche del server xDS. |
TRAFFICDIRECTOR_NETWORK_NAME |
Se il campo è vuoto o non è stato specificato, il valore viene impostato su
default . |
locality |
La zona Google Cloud in cui è in esecuzione il client gRPC. |
Continua la procedura di configurazione
Dopo aver completato i prerequisiti descritti in questo documento, continua con le istruzioni in uno di questi documenti:
- Configura VM di Compute Engine e servizi gRPC proxyless
- Configurare GKE e servizi gRPC proxyless
- Se stai eseguendo il deployment di Traffic Director con le nuove API di routing del servizio, disponibili in anteprima, leggi le Guide alla configurazione del routing del traffico.