Preparati a configurare Cloud Service Mesh con Envoy
La configurazione di Cloud Service Mesh include le seguenti fasi:
- Concedere le autorizzazioni, abilitare l'API Traffic Director e, se utilizzi Compute Engine, configurare Cloud DNS.
- Deployment delle applicazioni con proxy Envoy.
- Creazione di servizi e regole di routing che determinano il percorso del traffico attraverso ilmesh di servizih.
Questo documento descrive la prima fase e si applica quando utilizzi le API precedenti. La seconda e la terza fase sono trattate nelle guide specifiche per piattaforma elencate in Continuare la procedura di configurazione più avanti in questo documento.
Prima di leggere questa guida, familiarizza con la panoramica di Cloud Service Mesh. Se utilizzi le API di routing dei servizi, consulta la panoramica delle API di routing dei servizi.
Prerequisiti
Se prevedi di utilizzare Cloud Service Mesh per configurare i proxy Envoy in esecuzione insieme alle applicazioni su istanze di macchine virtuali (VM), container o un mix di entrambi, devi prima completare le seguenti attività:
- Abilita la fatturazione.
- Decidi come installare Envoy.
- Concedi le autorizzazioni richieste.
- Abilita l'API Traffic Director per il tuo progetto.
- Se utilizzi Compute Engine, abilita l'API Cloud DNS e configura Cloud DNS.
- Assicurati che il account di servizio utilizzato dai proxy Envoy disponga delle autorizzazioni necessarie per accedere all'API Traffic Director.
Le sezioni seguenti forniscono le istruzioni per ogni attività.
Abilita fatturazione
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud . Per saperne di più, consulta Abilitare, disabilitare o modificare la fatturazione per un progetto.
Decidere come installare Envoy
Cloud Service Mesh consente di installare i proxy Envoy e gestire questo livello di infrastruttura:
Su Compute Engine, puoi aggiungere automaticamente Envoy alle applicazioni in esecuzione sulle tue VM. Utilizzi un template VM che installa Envoy, lo connette a Cloud Service Mesh e configura la rete della VM.
Su Google Kubernetes Engine (GKE), puoi aggiungere automaticamente proxy sidecar Envoy ai pod dei tuoi servizi. Installa un iniettore sidecar Envoy nel cluster, che aggiunge proxy sidecar Envoy, li connette a Cloud Service Mesh e configura il networking del container.
Infine, puoi anche utilizzare soluzioni di deployment di Envoy di fornitori di terze parti con Cloud Service Mesh. Un esempio di offerta di questo tipo è GetEnvoy, che fornisce un approccio basato su un gestore di pacchetti per installare e aggiornare i proxy Envoy.
Informazioni sul controllo delle versioni di Envoy
Per funzionare con Cloud Service Mesh, Envoy deve essere la versione 1.9.1 o successive. Ti consigliamo di utilizzare sempre la versione più recente di Envoy per garantire la mitigazione delle vulnerabilità di sicurezza note.
Se decidi di eseguire il deployment di Envoy utilizzando uno dei nostri metodi automatizzati, gestiamo questa attività per te nel seguente modo:
Quando utilizzi il deployment automatico di Envoy con le VM di Compute Engine, la versione di Envoy installata è una che abbiamo convalidato per funzionare con Cloud Service Mesh. Quando viene creata una nuova VM utilizzando il modello di istanza, la VM riceve l'ultima versione che abbiamo convalidato. Se hai una VM in esecuzione da molto tempo, puoi utilizzare un aggiornamento in sequenza per sostituire le VM esistenti e ottenere l'ultima versione.
Quando utilizzi lo strumento di inserimento sidecar Envoy con GKE, lo strumento di inserimento è configurato per utilizzare una versione recente di Envoy che abbiamo convalidato per funzionare con Cloud Service Mesh. Quando un sidecar viene inserito insieme al pod del tuo carico di lavoro, riceve questa versione di Envoy. Se vuoi scaricare una versione più recente di Envoy, aggiorna l'iniettore sidecar Envoy.
Per informazioni su versioni specifiche di Envoy, vedi Cronologia delle versioni. Per informazioni sulle vulnerabilità di sicurezza, consulta Avvisi di sicurezza.
Concedi le autorizzazioni IAM richieste
Per configurare Cloud Service Mesh, devi disporre di autorizzazioni Identity and Access Management (IAM) sufficienti per creare istanze VM e modificare una rete. Se disponi del ruolo
di proprietario o editor del progetto (roles/owner o
roles/editor) nel progetto in cui
stai abilitando Cloud Service Mesh, disponi automaticamente delle autorizzazioni corrette.
In caso contrario, devi disporre di tutti i ruoli IAM di Compute Engine mostrati nella tabella seguente. Se disponi di questi ruoli, hai anche le autorizzazioni associate, come descritto nella 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. | Service Usage Admin
( roles/serviceusage.serviceUsageAdmin) |
| Crea reti, subnet e componenti del bilanciatore del carico. | Compute Network Admin
( roles/compute.networkAdmin) |
| Aggiungere e rimuovere regole firewall. | Compute Security Admin
( roles/compute.securityAdmin) |
| Crea istanze. | Compute Instance Admin
( roles/compute.instanceAdmin) |
Il pool di nodi GKE o le VM di Compute Engine devono
avere l'ambito
https://www.googleapis.com/auth/cloud-platform. Per ulteriori informazioni, consulta la sezione
Risoluzione dei problemi di deployment che utilizzano Envoy.
Con xDS v3, concedi al account di servizio utilizzato dai client Envoy di Cloud Service Mesh
il ruolo roles/trafficdirector.client.
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 elencata, significa che non disponi delle autorizzazioni necessarie per abilitarla.
Nella pagina API Traffic Director, fai clic su Abilita.
gcloud
Esegui questo comando:
gcloud services enable trafficdirector.googleapis.com
Abilita l'API Cloud DNS e configura Cloud DNS
Segui queste istruzioni se stai configurando Cloud Service Mesh su Compute Engine. Devi abilitare l'API Cloud DNS e configurare Cloud DNS per la risoluzione dei nomi DNS.
Per informazioni di base su Cloud Service Mesh e sulla risoluzione DNS, consulta Cloud Service Mesh e risoluzione dei nomi DNS.
Innanzitutto, utilizza le seguenti istruzioni per abilitare l'API Cloud DNS.
Console
Nella console Google Cloud , vai alla pagina Libreria API del tuo progetto.
Nel campo Cerca API e servizi, inserisci
DNS.Nell'elenco dei risultati di ricerca, fai clic su API Cloud DNS. Se non vedi l'API Cloud DNS elencata, significa che non disponi delle autorizzazioni necessarie per abilitarla.
Nella pagina API Cloud DNS, fai clic su Abilita.
gcloud
Esegui questo comando:
gcloud services enable dns.googleapis.com
Successivamente, configura una zona privata gestita di Cloud DNS. Segui le istruzioni in Crea una zona privata.
Abilitare il account di servizio per accedere all'API Traffic Director
Quando configuri il data plane e lo connetti a Cloud Service Mesh, i client xDS (ad esempio i proxy Envoy) si connettono al server xDS trafficdirector.googleapis.com. Questi client xDS presentano un'identità di service account al server xDS per garantire che le comunicazioni tra il data plane e il control plane siano autorizzate correttamente:
- Per una VM Compute Engine, il client xDS utilizza il service account assegnato alla VM.
- Per GKE, se
Workload Identitynon è abilitato, il client xDS utilizza il account di servizio assegnato al nodo GKE sottostante. - Se
Workload Identityè abilitato, il client xDS utilizza il service account Google associato alaccount di serviziot Kubernetes assegnato al pod.
Devi avere le seguenti autorizzazioni. È supportato solo xDS v3. Se utilizzi xDS v2, devi eseguire la migrazione a xDS v3. Per informazioni su come eseguire la migrazione, vedi Eseguire la migrazione da xDS v2 a xDS v3.
Quando utilizzi xDS v3, il account di servizio utilizzato dai client deve disporre delle autorizzazioni
trafficdirector.networks.reportMetrics, trafficdirector.rateLimitDomains.reportMetrics
e trafficdirector.networks.getConfigs. Puoi utilizzare il ruolo IAM
Client Traffic Director
(roles/trafficdirector.client), che include queste autorizzazioni.
Console
Nella console Google Cloud , vai alla pagina IAM e amministrazione.
Seleziona il progetto.
Identifica il account di servizio a cui vuoi aggiungere un ruolo:
- Se il account di servizio non è già presente nell'elenco Membri, non ha ruoli assegnati. Fai clic su Aggiungi e inserisci l'indirizzo email delaccount di serviziot.
- Se il account di servizio è già presente nell'elenco Membri, dispone di ruoli esistenti. Seleziona il account di servizio e poi fai clic sulla scheda Ruoli.
Espandi il ruolo. Per il account di servizio che vuoi modificare, fai clic su Modifica.
Seleziona il ruolo Altro > Client Cloud Service Mesh.
Per applicare il ruolo al 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 projectSERVICE_ACCOUNT_EMAIL: l'indirizzo email associato al account di servizio
Continua la procedura di configurazione
Ora che hai completato i passaggi preliminari, puoi iniziare a configurare la mesh di servizih.
- Opzioni di configurazione avanzate di Cloud Service Mesh.
- Configura gli attributi di bootstrap di Envoy.