Preparati alla configurazione delle API di routing dei servizi con Envoy e carichi di lavoro senza proxy

Questo documento fornisce informazioni sulle attività preliminari per la configurazione Cloud Service Mesh utilizzando le API di routing dei servizi con proxy Envoy o con gRPC senza proxy come piano dati.

La configurazione di Cloud Service Mesh include diverse fasi. Questo documento descrive la prima fase: le istruzioni per prepararsi alla configurazione Cloud Service Mesh con istanze VM o applicazioni gRPC senza proxy. Le fasi aggiuntive sono trattate dalle guide specifiche per piattaforma elencate in Continua 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 il servizio API di routing e API del gateway:

Prerequisiti

Prepara l'ambiente completando le seguenti attività:

  1. Configura progetti in base alle tue esigenze aziendali.
  2. Abilitare la fatturazione.
  3. Concedi le autorizzazioni richieste.
  4. Abilita l'API Traffic Director e altre API per il tuo progetto.
  5. Assicurati che l'account di servizio disponga di autorizzazioni sufficienti per accedere API Traffic Director.
  6. Abilitare l'API Cloud DNS e configurare Cloud DNS.

Le sezioni seguenti forniscono istruzioni per ogni attività.

Configura progetti

Per configurare e gestire i tuoi progetti, consulta Creazione e gestione dei progetti e documentazione correlata.

Abilita fatturazione

Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Per ulteriori informazioni informazioni, consulta 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 Proprietario o Editor del progetto (roles/owner o roles/editor) nel progetto in cui stai attivando Cloud Service Mesh, avrai automaticamente le autorizzazioni corrette.

In caso contrario, devi disporre di tutti i ruoli IAM indicati in seguente. Se hai questi ruoli, sono associati anche i relativi autorizzazioni, 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. 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)
Consente l'accesso agli account di servizio. Utente account di servizio
(roles/iam.serviceAccountUser)
Abilita l'account di servizio per eseguire le attività richieste. Utente account di servizio
(roles.trafficdirector.client)

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.

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, che si tratti di proxy Envoy o client gRPC senza proxy, 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.

Se non modifichi la configurazione, Google Cloud utilizza Account di servizio predefinito Compute Engine.

Per concedere all'account di servizio l'accesso all'API Traffic Director, utilizza quanto segue instructions.

Console

  1. Nella console Google Cloud, vai alla sezione IAM e Amministratore .

    Vai a IAM e Amministratore

  2. Seleziona il progetto.

  3. 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.
  4. Espandi il ruolo. Per l'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 al account di servizio

Abilita le API richieste

Abilita le seguenti API obbligatorie.

  • osconfig.googleapis.com
  • trafficdirector.googleapis.com
  • compute.googleapis.com
  • networkservices.googleapis.com

Per abilitare le API richieste, segui le istruzioni riportate di seguito.

Console

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

    Vai alla libreria API

  2. Nella sezione Cerca API e Services, inserisci Traffic Director.

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

  4. Nella pagina dell'API Traffic Director, fai clic su Abilita.

  5. Nella sezione Cerca API e Services, inserisci OS Config.

  6. Nell'elenco dei risultati di ricerca, fai clic su OS Config. Se non vedi il l'API OS Config, vuol dire che non disponi dei autorizzazioni per abilitare l'API Traffic Director.

  7. Nella pagina API OS Config, fai clic su Abilita.

  8. Nella sezione Cerca API e Services, inserisci Compute.

  9. Nell'elenco dei risultati di ricerca, fai clic su API Compute Engine. Se non vedi il dall'API Compute Engine, vuol dire che non disponi dei delle autorizzazioni per abilitare l'API Compute Engine.

  10. Nella pagina API Compute Engine, fai clic su Abilita.

  11. Nella sezione Cerca API e Services, inserisci Network Services.

  12. Nell'elenco dei risultati di ricerca, fai clic su API Network Services. Se non vedi il l'API Network Services elencata, significa che non si dispone dei le autorizzazioni per abilitare l'API Network Services.

  13. Nella pagina API Network Services, fai clic su Abilita.

gcloud

Esegui questo comando:

gcloud services enable osconfig.googleapis.com \
trafficdirector.googleapis.com \
compute.googleapis.com \
networkservices.googleapis.com

Versione xDS

Le API di routing dei servizi richiedono l'uso di xDS v3. Per informazioni sull'aggiornamento il deployment da xDS v2 a xDS v3, consulta API del piano di controllo xDS.

Requisiti aggiuntivi con i proxy Envoy

Questa sezione descrive requisiti aggiuntivi per l'utilizzo di Cloud Service Mesh con le API di routing dei servizi e i proxy Envoy. Se esegui il deployment con proxyless gRPC, consulta Requisiti aggiuntivi con gRPC senza proxy.

Come viene installato Envoy

Durante il processo di deployment di Cloud Service Mesh, crei una VM che installa automaticamente Envoy sulle VM in cui le tue applicazioni vengono eseguiti tutti i test delle unità.

Informazioni sulle versioni di Envoy

Envoy deve avere la versione 1.20.0 o successiva per funzionare con Cloud Service Mesh. Consigliamo di utilizzare sempre la versione più recente di Envoy per garantire che le vulnerabilità della sicurezza vengono ridotte.

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

Il deployment automatizzato di Envoy con le VM di Compute Engine installa Envoy convalidata per l'uso con Cloud Service Mesh. Quando viene creata una nuova VM utilizzando il modello di istanza, la VM riceve all'ultima versione che abbiamo convalidato. Se hai una VM a lunga esecuzione, puoi Utilizzare un aggiornamento in sequenza per sostituire le VM esistenti e scegliere la versione più recente.

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

Requisiti aggiuntivi con gRPC senza proxy

Questa sezione descrive requisiti aggiuntivi per l'utilizzo di Cloud Service Mesh con le API di routing dei servizi e gRPC senza proxy. Se esegui il deployment con Envoy consulta Requisiti aggiuntivi per i proxy Envoy.

Processo complessivo con gRPC senza proxy

Segui questa procedura generale per configurare applicazioni gRPC senza proxy in un mesh di servizi:

  1. Aggiorna i client gRPC alla versione più recente di gRPC, con la versione una patch.
  2. 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.
  3. Configura le risorse 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, in conformità 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 praticità, puoi utilizzare la versione più recente di gRPC Cloud Service Mesh generatore di bootstrap.

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

id deve essere nel seguente formato, come mostrato in dell'esempio precedente:

projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID

Fornisci una stringa univoca come valore di ID. Ciò consente di identificare il client gRPC a cui si connette Cloud Service Mesh.

metadata Informazioni specifiche del server xDS.
TRAFFICDIRECTOR_MESH_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 se configuri Cloud Service Mesh con le API di routing dei servizi: