Preparati a configurare Cloud Service Mesh con servizi gRPC senza proxy
La configurazione di Cloud Service Mesh include diverse fasi. Il presente documento descrive prima fase: istruzioni per la preparazione alla configurazione di Cloud Service Mesh con applicazioni gRPC senza proxy. Questo documento si applica ai casi in cui utilizzi con le API di bilanciamento del carico. Tuttavia, ti consigliamo vivamente di utilizzare le API di routing del servizio. Le altre fasi sono contemplate dalle fasi specifiche guide 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 Cloud Service Mesh con gRPC senza proxy applicazioni:
- Panoramica di Cloud Service Mesh
- Panoramica di Cloud Service Mesh con servizi gRPC senza proxy
- Panoramica delle nuove API di routing dei servizi di Cloud Service Mesh
Prerequisiti
Prepara l'ambiente completando le seguenti attività:
- Abilitare la fatturazione.
- Concedi le autorizzazioni richieste.
- Abilita l'API Traffic Director per il tuo progetto.
- Assicurati che l'account di servizio abbia un numero sufficiente di le autorizzazioni 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 maggiori informazioni le informazioni, vedi Abilitare, disabilitare o modificare la fatturazione per un progetto.
Concedi le autorizzazioni IAM richieste
Devi disporre di autorizzazioni di Identity and Access Management (IAM) sufficienti per creare una VM
e modificare una rete per configurare Cloud Service Mesh. Se hai
ruolo del progetto
Proprietario o Editor (roles/owner
o
roles/editor
) nel progetto in cui
attivi Cloud Service Mesh, avrai automaticamente le autorizzazioni corrette.
In caso contrario, devi disporre di tutti i ruoli IAM ruoli elencati nella tabella seguente. Se hai questi ruoli, hai anche le loro alle autorizzazioni associate, come descritto Documentazione IAM di Compute Engine.
Attività | Ruolo richiesto |
---|---|
Imposta il criterio IAM per un account di servizio. | Amministratore account di servizio
( roles/iam.serviceAccountAdmin ) |
Attiva Cloud Service Mesh. | Amministratore Service Usage
( roles/serviceusage.serviceUsageAdmin ) |
Creare reti, subnet e componenti del bilanciatore del carico. | Amministratore rete Compute
( roles/compute.networkAdmin ) |
Aggiungi e rimuovi le regole firewall. | Amministratore sicurezza Compute
( roles/compute.securityAdmin ) |
Creare le istanze. | Amministratore istanze Compute
( roles/compute.instanceAdmin ) |
Creare e modificare un cluster GKE, se si utilizzano i pod. | Amministratore cluster
( roles/container.clusterAdmin ) |
Consente l'accesso agli account di servizio. | Utente account di servizio
( roles/iam.serviceAccountUser |
Le VM di Compute Engine devono avere
https://www.googleapis.com/auth/cloud-platform
l'ambito di attività. Per ulteriori informazioni, vedi
Risoluzione dei problemi dei deployment che utilizzano gRPC senza proxy.
Con xDS v3, concedi l'account di servizio utilizzato dai client gRPC di Cloud Service Mesh
il ruolo roles/trafficdirector.client
.
Abilita l'API Traffic Director
Console
Nella console Google Cloud, vai alla pagina Libreria API relativa al tuo progetto.
Nella sezione Cerca API e Services, inserisci
Traffic Director
.Nell'elenco dei risultati di ricerca, fai clic su API Traffic Director. Se non vedi il dell'API Traffic Director, significa che non disponi dell'API autorizzazioni per abilitare l'API Traffic Director.
Nella pagina dell'API Traffic Director, fai clic su Abilita.
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 Cloud Service Mesh,
I client xDS si connettono al server xDS trafficdirector.googleapis.com
. Questi
I client xDS presentano un'identità dell'account di servizio al server xDS per garantire
le comunicazioni tra il piano dati e il piano di controllo
autorizzati.
Per una VM di Compute Engine, il client xDS utilizza l'account di servizio assegnati alla VM.
Devi disporre delle seguenti autorizzazioni. La versione del protocollo xDS è specificata in il file di bootstrap. È supportato solo xDS v3.
Se utilizzi xDS v2, devi eseguire la migrazione a xDS v3. Per informazioni per informazioni sulla migrazione, vedi Eseguire la migrazione da xDS v2 a xDS v3.
Quando utilizzi xDS v3, l'account di servizio usato dalle applicazioni gRPC deve
hanno i trafficdirector.networks.reportMetrics
e
Autorizzazioni trafficdirector.networks.getConfigs
. Puoi utilizzare lo
Ruolo Client Cloud Service Mesh IAM
(roles/trafficdirector.client
), che aggrega entrambe le autorizzazioni.
Console
Nella console Google Cloud, vai alla sezione IAM e Amministratore .
Seleziona il progetto.
Identifica l'account di servizio a cui vuoi aggiungere un ruolo:
- Se l'account di servizio non è già nell'elenco Membri, può non ha ruoli assegnati. Fai clic su Add (Aggiungi) e inserisci l'indirizzo email dell'account di servizio.
- Se l'account di servizio è già nell'elenco Membri, deve: ruoli esistenti. Seleziona l'account di servizio, quindi fai clic sull'icona Scheda Ruoli.
Espandi il ruolo. Per l'account di servizio che vuoi modificare, fai clic su
Modifica.Seleziona il ruolo Altro > Client Cloud Service Mesh.
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 al account di servizio
Quindi, segui questa procedura generale per configurare applicazioni gRPC senza proxy in un mesh di servizi:
- Aggiorna i client gRPC alla versione più recente di gRPC, con la versione una nuova patch.
- Aggiorna i prodotti o servizi dei tuoi clienti Schema del resolver del nome gRPC quando crei un canale per specificare un file di bootstrap di Cloud Service Mesh.
- Configura le risorse di Cloud Service Mesh e Cloud Load Balancing.
Questo documento fornisce informazioni per completare i primi due passaggi. La di configurazione di rete che usi per il passaggio 3 dipende dal fatto che le tue il deployment usa VM di Compute Engine oppure Gruppi di endpoint di rete (NEG) GKE.
Lingue e versioni di gRPC supportati
gRPC è un progetto open source e il relativo supporto per le release è descritto nella Domande frequenti su gRPC. Ti consigliamo di utilizzare la versione più recente di gRPC per garantire che le le vulnerabilità della sicurezza vengono ridotte. Questo assicura anche che le tue applicazioni alle funzionalità più recenti supportate da Cloud Service Mesh. La funzionalità mesh di servizi supportate in varie implementazioni e versioni del Le gRPC sono elencate su GitHub. Per un elenco di linguaggi e funzionalità gRPC supportate con Cloud Service Mesh e per i servizi gRPC senza proxy, consulta Funzionalità di Cloud Service Mesh.
Cloud Service Mesh mantiene la compatibilità con le versioni attuali e supportate dei gRPC e si impegna a essere compatibile con le versioni gRPC in meno di un anno precedenti, soggetti ai Termini di servizio della piattaforma Google Cloud.
Aggiorna i client gRPC
Aggiorna la libreria gRPC nell'applicazione alla versione che supporta le funzionalità di cui hai bisogno. Per maggiori dettagli, consulta la sezione precedente.
Aggiungi il name-resolver xDS come dipendenza dalle applicazioni gRPC. Le sezioni seguenti mostrano i requisiti per linguaggio Java e Go. Per altre lingue non sono previsti requisiti aggiuntivi.
Requisiti Java
In Java, se utilizzi Gradle, aggiungi la dipendenza grpc-xds
al tuo
build.gradle
file. Sostituisci LATEST_GRPC_VERSION
con
l'ultima versione
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 di Go
Se utilizzi Go, importa il pacchetto xds Go.
Imposta il resolver dei nomi gRPC per utilizzare xds
Imposta o modifica le tue applicazioni gRPC per utilizzare lo schema di risoluzione dei nomi xds
in
l'URI di destinazione, invece di DNS o di qualsiasi altro schema di resolver. Per farlo devi
utilizzando il prefisso xds:///
nel nome di destinazione quando crei un canale gRPC.
Il bilanciamento del carico per i client gRPC si basa sul canale.
Includi il nome del servizio utilizzato nell'URI di destinazione nel
Configurazione di Cloud Service Mesh. Ad esempio, in Java, crei il
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
Cloud Service Mesh per ottenere informazioni di configurazione per il target
completamente gestito di Google Cloud. Pertanto, procedi nel seguente modo:
- Crea un file di bootstrap, come mostrato nell'esempio seguente. Questo file indica gRPC per connettersi a un server xDS (Cloud Service Mesh) per ottenere la configurazione per servizi specifici.
- Definisci una variabile di ambiente denominata
GRPC_XDS_BOOTSTRAP
con il bootstrap nome file come valore della variabile di ambiente.
Le istruzioni di configurazione includono esempi che mostrano come generare il file di bootstrap. Per comodità, puoi utilizzare la versione più recente del generatore di bootstrap gRPC di Cloud Service Mesh.
Un file di bootstrap contenente le informazioni necessarie per la connessione a Cloud Service Mesh deve essere incluso insieme all'applicazione. Esempio il file di bootstrap 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 seguente tabella illustra i campi del file di bootstrap.
Campo | Valore e descrizione |
---|---|
xds_servers |
Un elenco di server xDS. gRPC utilizza solo il primo nell'elenco. |
server_uri |
Specificane almeno uno. gRPC tenta di connettersi solo al primo xDS
server nell'elenco di 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 ulteriori informazioni
le credenziali, vedi
Guida introduttiva all'autenticazione. |
server_features |
Un elenco di funzionalità supportate dal server, ad esempio Supporto per 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 Fornisci una stringa univoca come valore di |
metadata |
Informazioni specifiche del server xDS. |
TRAFFICDIRECTOR_NETWORK_NAME |
Se il campo è vuoto o non specificato, il valore è 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 uno di questi documenti:
- Continua con Cloud Service Mesh Configurare GKE e servizi gRPC senza proxy
- Continua con la pagina Configurare Compute Engine e i servizi gRPC senza proxy di Cloud Service Mesh
- Continua con le guide alla configurazione dell'API GKE Kubernetes Gateway di Cloud Service Mesh. Tieni presente che la funzionalità dell'API Gateway è in anteprima.