Preparati a configurare Cloud Service Mesh con Envoy

La configurazione di Cloud Service Mesh prevede 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 proxy Envoy.
  3. Creazione di servizi e regole di routing che determinano la modalità di trasferimento del traffico nel tuo 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 dalle guide specifiche per piattaforma elencate in Continuare il processo di configurazione più avanti in questo documento.

Prima di leggere questa guida, acquisisci familiarità 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

Che tu voglia 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à:

  1. Abilita la fatturazione.
  2. Decidi come 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 l'account di servizio utilizzato dai proxy Envoy disponga di 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.

Decidi come installare Envoy

Cloud Service Mesh ti consente di installare i proxy Envoy e di gestire questo livello di infrastruttura:

  • Su Compute Engine, puoi aggiungere automaticamente Envoy alle applicazioni in esecuzione sulle tue VM. Utilizzi un modello di VM che installa Envoy, lo connette a Cloud Service Mesh e configura il networking della VM.

  • Su Google Kubernetes Engine (GKE), puoi aggiungere automaticamente proxy collaterali Envoy ai pod dei tuoi servizi. Devi installare un iniettore sidecar Envoy al tuo cluster, in modo da aggiungere i proxy collaterali Envoy, li connette a Cloud Service Mesh e configura il networking del tuo container.

Infine, puoi utilizzare le soluzioni di deployment Envoy di provider di terze parti con Cloud Service Mesh. Un esempio di questa offerta è GetEnvoy, che fornisce un approccio basato sul gestore di pacchetti per l'installazione e l'aggiornamento dei proxy Envoy.

Informazioni sul controllo delle versioni di Envoy

Envoy deve essere versione 1.9.1 o successiva per poter funzionare con Cloud Service Mesh. Consigliamo di utilizzare sempre la versione più recente di Envoy per garantire che le vulnerabilità di sicurezza note vengano ridotte.

Se decidi di eseguire il deployment di Envoy utilizzando uno dei nostri metodi automatici, gestiamo questa attività per te nel seguente modo:

  • Quando utilizzi il deployment automatizzato di Envoy con VM di Compute Engine, la versione di Envoy installata è una che abbiamo convalidato per l'utilizzo con Cloud Service Mesh. Quando viene creata una nuova VM utilizzando il modello di istanza, la VM riceve la versione più recente che abbiamo convalidato. Se hai una VM a lunga esecuzione, puoi utilizzare un aggiornamento in sequenza per sostituire le VM esistenti e recuperare la versione più recente.

  • Quando utilizzi l'iniettore sidecar Envoy con GKE, l'iniettore è configurato per utilizzare una versione recente di Envoy che abbiamo convalidato per funzionare con Cloud Service Mesh. Quando un file collaterale viene inserito insieme al pod del carico di lavoro, riceve questa versione di Envoy. Se vuoi scegliere una versione più recente di Envoy, aggiorna l'iniettore collaterale di Envoy.

Per informazioni su versioni specifiche di Envoy, consulta Cronologia delle versioni. Per informazioni sulle vulnerabilità di sicurezza, consulta gli avvisi sulla sicurezza.

Concedi le autorizzazioni IAM richieste

Devi disporre di autorizzazioni Identity and Access Management (IAM) sufficienti per creare istanze VM e modificare una rete al fine di configurare Cloud Service Mesh. Se hai il 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 relative 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)
Abilita Cloud Service Mesh. 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 Compute
(roles/compute.securityAdmin)
Creare istanze. Amministratore istanze Compute
(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 Risoluzione dei problemi relativi ai deployment che utilizzano Envoy.

Con xDS v3, concedi all'account di servizio utilizzato dai client Envoy di Cloud Service Mesh il ruolo roles/trafficdirector.client.

Abilita l'API Traffic Director

Console

  1. Nella console Google Cloud, vai alla pagina Libreria API relativa al 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 elencata, significa che non disponi delle autorizzazioni necessarie per abilitare l'API Traffic Director.

  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

Utilizza 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 la risoluzione dei nomi DNS.

Innanzitutto, segui le istruzioni riportate di seguito per abilitare l'API Cloud DNS.

Console

  1. Nella console Google Cloud, vai alla pagina Libreria API relativa al 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 l'API Cloud DNS non è elencata, significa che non disponi delle autorizzazioni necessarie per abilitare l'API Cloud DNS.

  4. Nella pagina API Cloud DNS, fai clic su Abilita.

gcloud

Esegui questo comando:

gcloud services enable dns.googleapis.com

Il passaggio successivo consiste nel configurare una zona privata gestita di Cloud DNS. Segui le istruzioni fornite in Creare una zona privata.

Abilita l'account di servizio per accedere all'API Traffic Director

Quando configuri il piano dati e lo colleghi a Cloud Service Mesh, i tuoi client xDS (ad esempio i proxy Envoy) si connettono al server xDS di 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 opportunamente autorizzate:

  • Per una VM Compute Engine, il client xDS utilizza l'account di servizio assegnato alla VM.
  • Per GKE, se Workload Identity non è abilitato, il client xDS utilizza l'account di servizio assegnato al nodo GKE sottostante.
  • Se Workload Identity è abilitato, il client xDS utilizza l'account di servizio Google associato all'account di servizio Kubernetes assegnato al pod.

Sono necessarie le autorizzazioni seguenti, a seconda della versione del client xDS che utilizzi per configurare Envoy. Ti consigliamo vivamente di configurare i nuovi deployment Envoy con xDS v3 o di eseguire la migrazione a xDS v3 se già disponi di un deployment che utilizza xDS v2.

  • Quando utilizzi xDS v3, l'account di servizio utilizzato dai tuoi client deve avere le autorizzazioni trafficdirector.networks.reportMetrics e trafficdirector.networks.getConfigs. Puoi utilizzare il ruolo client Cloud Service Mesh (roles/trafficdirector.client), che aggrega entrambe le autorizzazioni.

  • Quando utilizzi xDS v2, l'account di servizio utilizzato dai client deve disporre dell'autorizzazione compute.globalForwardingRules.get IAM a livello di progetto. Puoi anche concedere questa autorizzazione assegnando il ruolo Visualizzatore rete Compute (roles/compute.networkViewer) all'account di servizio.

Console

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

    Vai a IAM e amministrazione

  2. Seleziona il progetto.

  3. Identifica l'account di servizio a cui vuoi aggiungere un ruolo:

    • Se l'account di servizio non è già presente nell'elenco Membri, non avrà alcun ruolo assegnato. Fai clic su Aggiungi e inserisci l'indirizzo email dell'account di servizio.
    • Se l'account di servizio è già presente nell'elenco Membri, significa che dispone già di ruoli. Seleziona l'account di servizio, quindi fai clic sulla scheda Ruoli.
  4. Espandi il ruolo. In corrispondenza dell'account di servizio che vuoi modificare, fai clic su Modifica.

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

  6. 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: inserisci gcloud config get-value project
  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email associato all'account di servizio

Continua la procedura di configurazione

Ora che hai completato i passaggi preliminari, puoi iniziare a configurare il tuo mesh di servizi.