Preparati a configurare Cloud Service Mesh con Envoy
La configurazione di Cloud Service Mesh include le seguenti fasi:
- Concessione delle autorizzazioni, abilitazione dell'API Traffic Director e, se utilizzi Compute Engine, configurazione di Cloud DNS.
- Deployment delle applicazioni con i proxy Envoy.
- Creazione di servizi e regole di routing che determinano il modo in cui il traffico transita attraverso il mesh di servizi.
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 la piattaforma elencate in Continuare la procedura di configurazione più avanti in questo documento.
Prima di leggere questa guida, consulta 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 una combinazione di entrambi, devi prima completare le seguenti attività:
- Abilita fatturazione.
- Decidi come vuoi 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 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 Google Cloud progetto. Per ulteriori informazioni, consulta Abilitare, disabilitare o modificare la fatturazione per un progetto.
Decidi come installare Envoy
Cloud Service Mesh ti consente di installare i proxy Envoy e gestire questo livello di infrastruttura:
Su Compute Engine, puoi aggiungere automaticamente Envoy alle applicazioni in esecuzione sulle VM. Utilizza 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 i proxy sidecar Envoy ai pod dei tuoi servizi. Installa un inseritore sidecar Envoy nel cluster, che aggiunge i proxy sidecar Envoy, li connette a Cloud Service Mesh e configura la rete del container.
Infine, puoi anche utilizzare le soluzioni di deployment Envoy di fornitori di terze parti con Cloud Service Mesh. Un esempio di questa offerta è GetEnvoy, che fornisce un approccio basato su un gestore di pacchetti per l'installazione e l'aggiornamento dei 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à alla sicurezza note.
Se decidi di eseguire il deployment di Envoy utilizzando uno dei nostri metodi automatici, questa attività viene gestita come segue:
Quando utilizzi il deployment automatico di Envoy con le VM di Compute Engine, la versione di Envoy installata è quella che abbiamo convalidato per il funzionamento con Cloud Service Mesh. Quando viene creata una nuova VM utilizzando il template di istanza, la VM riceve l'ultima versione che abbiamo convalidato. Se hai una VM a lunga esecuzione, puoi utilizzare un aggiornamento in sequenza per sostituire le VM esistenti e recuperare l'ultima versione.
Quando utilizzi l'inseritore sidecar Envoy con GKE, l'inseritore è configurato per utilizzare una versione recente di Envoy che abbiamo convalidato per il funzionamento con Cloud Service Mesh. Quando un sidecar viene inserito insieme al pod del carico di lavoro, riceve questa versione di Envoy. Se vuoi recuperare una versione più recente di Envoy, aggiorna l'inseritore sidecar Envoy.
Per informazioni sulle versioni specifiche di Envoy, consulta la cronologia delle versioni. Per informazioni sulle vulnerabilità alla sicurezza, consulta gli avvisi di sicurezza.
Concedi le autorizzazioni IAM richieste
Devi disporre di autorizzazioni Identity and Access Management (IAM) sufficienti per creare istanze VM e modificare una rete per configurare Cloud Service Mesh. Se disponi del
ruolo Proprietario o Editor del progetto
(roles/owner o
roles/editor) nel progetto in cui stai
abilitando Cloud Service Mesh, hai automaticamente le 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 i criteri IAM per un account di servizio. | Amministratore account di servizio
( roles/iam.serviceAccountAdmin) |
| Abilita Cloud Service Mesh. | Amministratore Service Usage
( roles/serviceusage.serviceUsageAdmin) |
| Crea reti, subnet e componenti del bilanciatore del carico. | Amministratore di rete Compute
( roles/compute.networkAdmin) |
| Aggiungi e rimuovi regole firewall. | Amministratore della sicurezza Compute
( roles/compute.securityAdmin) |
| Crea istanze. | Amministratore istanze Compute
( roles/compute.instanceAdmin) |
Il pool di nodi GKE o le VM di Compute Engine devono
avere l'
https://www.googleapis.com/auth/cloud-platform
ambito. Per ulteriori informazioni, consulta
Risoluzione dei problemi relativi ai 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 Google Cloud console, 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, 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 la risoluzione DNS, consulta Cloud Service Mesh e risoluzione dei nomi DNS.
Innanzitutto, segui queste istruzioni per abilitare l'API Cloud DNS.
Console
Nella Google Cloud console, 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, 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
Poi, configura una zona privata gestita di Cloud DNS. Segui le istruzioni riportate in Creare una zona privata.
Abilita il account di servizio per accedere all'API Traffic Director
Quando configuri il piano dati 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à del service account al server xDS per garantire che le comunicazioni tra il piano dati e il piano di controllo siano autorizzate correttamente:
- Per una VM di 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 al account di servizio Kubernetes assegnato al pod.
Devi disporre delle seguenti autorizzazioni. È supportato solo xDS v3. Se utilizzi xDS v2, devi eseguire la migrazione a xDS v3. Per informazioni su come eseguire la migrazione, consulta Eseguire la migrazione da xDS v2 a xDS v3.
Quando utilizzi xDS v3, il account di servizio utilizzato dai client deve disporre delle
trafficdirector.networks.reportMetrics, trafficdirector.rateLimitDomains.reportMetrics
e trafficdirector.networks.getConfigs autorizzazioni. Puoi utilizzare il ruolo client Traffic Director IAM
(roles/trafficdirector.client), che include queste autorizzazioni.
Console
Nella Google Cloud console, 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 del account di servizio.
- Se il account di servizio è già presente nell'elenco Membri, ha ruoli esistenti. Seleziona il account di servizio, quindi 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 dei prerequisiti, puoi iniziare a configurare il mesh di servizi.
- Opzioni di configurazione avanzate di Cloud Service Mesh.
- Configura gli attributi di bootstrap di Envoy.