Preparati a configurare Cloud Service Mesh con Envoy

La configurazione di Cloud Service Mesh include le seguenti fasi:

  1. Concessione delle autorizzazioni, abilitazione dell'API Traffic Director e, se utilizzi Compute Engine, configurazione di Cloud DNS.
  2. Deployment delle applicazioni con i proxy Envoy.
  3. 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à:

  1. Abilita fatturazione.
  2. Decidi come vuoi installare Envoy.
  3. Concedi le autorizzazioni richieste.
  4. Abilita l'API Traffic Director per il tuo progetto.
  5. Se utilizzi Compute Engine, abilita l'API Cloud DNS e configura Cloud DNS.
  6. 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

  1. Nella Google Cloud console, vai alla pagina Libreria API del tuo progetto.

    Vai alla libreria API

  2. Nel campo Cerca API e servizi, inserisci Traffic Director.

  3. 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.

  4. 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

  1. Nella Google Cloud console, vai alla pagina Libreria API del tuo progetto.

    Vai alla libreria API

  2. Nel campo Cerca API e servizi, inserisci DNS.

  3. 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.

  4. 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 Identity non è 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

  1. Nella Google Cloud console, vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Seleziona il progetto.

  3. 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.
  4. Espandi il ruolo. Per il account di servizio che vuoi modificare, fai clic su Modifica.

  5. Seleziona il ruolo Altro > Client Cloud Service Mesh.

  6. 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: inserisci gcloud config get-value project
  • SERVICE_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.