Panoramica del mesh di servizi GKE di Traffic Director

Questo documento è rivolto agli utenti di Google Kubernetes Engine che vogliono eseguire il deployment di un mesh di servizi Traffic Director utilizzando l'API Kubernetes Gateway.

Puoi configurare Traffic Director per GKE utilizzando le API gateway Kubernetes, abilitando le comunicazioni tra servizi, la gestione del traffico, il bilanciamento del carico globale e l'applicazione dei criteri di sicurezza per i casi d'uso del mesh di servizi.

API Kubernetes e API Google Cloud

Puoi configurare un mesh di servizi Traffic Director utilizzando due API diverse:

Questo documento e le guide alla configurazione associate forniscono istruzioni sull'utilizzo dell'API Kubernetes Gateway per configurare un mesh di servizi Traffic Director.

Ti consigliamo di utilizzare le API gateway Kubernetes su Google Kubernetes Engine e di non utilizzare entrambe le API per configurare il routing nello stesso mesh di servizi su GKE.

L'API di routing dei servizi utilizza gli stessi nomi di risorse delle API gateway Kubernetes, il che semplifica l'utilizzo delle due API. Le risorse Kubernetes che configuri sono equivalenti dal punto di vista funzionale alle risorse Google Cloud rappresentate dall'API di routing dei servizi per Traffic Director.

Le seguenti sezioni descrivono le risorse e l'architettura utilizzate dall'integrazione di Traffic Director con le API gateway Kubernetes.

API Gateway

L'API Gateway è una raccolta di risorse che modellano il networking di servizi in Kubernetes. L'API Gateway di Kubernetes è un progetto open source che si concentra sul supporto dei casi d'uso di traffico in entrata e del bilanciatore del carico fornendo un'API di routing generica. L'API di routing generica ha molte implementazioni. Le definizioni di risorse personalizzate (CRD) di Traffic Director vengono aggiunte come estensione all'API Gateway open source. I CRD supportano i casi d'uso del mesh di servizi e utilizzano la stessa API di routing generica introdotta dall'API Gateway.

L'API Gateway è organizzata in modo gerarchico, con una risorsa padre Gateway e l'elemento GatewayClass associato, a cui colleghi le route. GKE include una risorsa TDMesh che è un peer della risorsa Gateway. Puoi collegare gli stessi tipi di Route alla risorsa TDMesh. Nella risorsa TDMesh puoi collegare route e criteri per i mesh di servizi.

API gateway, risorsa gateway, risorsa mesh e route
API gateway, risorsa gateway, risorsa mesh e route (fai clic per ingrandire)

Parco risorse

Un parco risorse è costituito da uno o più cluster GKE raggruppati in modo logico. Un parco risorse consente di gestire le funzionalità e di applicare criteri in modo coerente su più cluster. Quando utilizzi un parco risorse, puoi gestire un mesh di servizi Traffic Director che copre più cluster.

Architettura

Traffic Director supporta l'API Gateway su GKE programmando i piani dati dei cluster per implementare i comportamenti di networking specificati nelle risorse dell'API Gateway. Lo stesso Traffic Director è un piano di controllo gestito da Google che non elabora il traffico del piano dati. I proxy Envoy in esecuzione come sidecar ai tuoi carichi di lavoro o i client gRPC senza proxy elaborano il traffico nel piano dati. Traffic Director configura sia i proxy Envoy che i client gRPC proxyless tramite l'API xDSv3.

Traffic Director offre una soluzione del piano di controllo gestita e disponibile a livello globale, più robusta e scalabile rispetto all'esecuzione di controller nel cluster. Poiché è una soluzione globale, Traffic Director può bilanciare il carico del traffico tra i carichi di lavoro distribuiti in più cluster GKE. Nell'illustrazione seguente, Traffic Director gestisce il traffico verso i servizi in tre cluster che si trovano in un unico parco risorse, utilizzando le risorse dell'API Gateway.

Un mesh di servizi multi-cluster Traffic Director configurato utilizzando l'API Gateway
Un mesh di servizi multi-cluster Traffic Director configurato utilizzando l'API Gateway (fai clic per ingrandire)

Puoi designare un cluster del tuo parco risorse come cluster di configurazione. Il cluster di configurazione è il luogo in cui vengono archiviate le risorse dell'API Gateway. Traffic Director controlla solo le risorse che si trovano nel cluster di configurazione e ignora le risorse che si trovano in altri cluster del parco risorse. Per informazioni più dettagliate sul cluster di configurazione, consulta Progettazione della configurazione del cluster nella documentazione di GKE.

Con i servizi multi-cluster GKE, le risorse dell'API gateway nel cluster di configurazione possono fare riferimento ai servizi Kubernetes in qualsiasi cluster all'interno di un parco risorse. Vedi Servizi multi-cluster per ulteriori informazioni su Service Discovery a cluster multipli.

Risorse

Traffic Director supporta sia i proxy Envoy che gRPC proxyless nel piano dati di un mesh di servizi. Entrambi i client ricevono la configurazione da Traffic Director per un particolare mesh di servizi, specificando il nome e il numero di progetto corrispondente della risorsa TDMesh nella rispettiva configurazione del bootstrap. Le guide alla configurazione per Traffic Director con le API gateway Kubernetes forniscono configurazioni di piani dati dimostrativi con Envoy e gRPC proxyless.

TDMesh risorsa

La risorsa TDMesh è una risorsa personalizzata di Traffic Director. È un'estensione delle API Gateway open source per supportare i casi d'uso del mesh di servizi di Traffic Director. Utilizzando la risorsa TDMesh, puoi creare un'istanza mesh di servizi nel tuo parco risorse. Le route associate alla risorsa TDMesh specificano i comportamenti di routing tra servizi nel mesh di servizi.

Route risorse

Un sottoinsieme delle risorse di route API gateway può essere collegato a una risorsa TDMesh per specificare il routing a livello di servizio all'interno del mesh di servizi. Traffic Director supporta le seguenti risorse Route:

  • HTTPRoute
  • TCPRoute
  • TDGRPCRoute (risorsa personalizzata Traffic Director)

Ad esempio, puoi creare un HTTPRoute per specificare che le richieste HTTP destinate all'host payments.svc.internal vengono instradate al servizio Kubernetes service-payments. Quando colleghi la risorsa HTTPRoute a una risorsa TDMesh a cui sono sottoscritte le istanze del piano dati, le richieste HTTP inviate dai carichi di lavoro all'interno del mesh vengono instradate di conseguenza.

Questa release aumenta le risorse Route generiche nell'API Gateway con un nuovo tipo di route, TDGRPCRoute. Il nuovo tipo di route offre un'esperienza all'avanguardia per il routing delle richieste gRPC, mediante la corrispondenza sulle primitive gRPC native, come le definizioni di metodi e servizi.

Utilizzo delle risorse dell'API Gateway in GKE per configurare Traffic Director
Utilizzo delle risorse dell'API Gateway in GKE per configurare Traffic Director (fai clic per ingrandire)

Limitazioni

  • Traffic Director configura i seguenti comportamenti predefiniti per tutti i servizi Kubernetes nel mesh di servizi. Non è possibile modificare questi comportamenti.
    • I controlli di integrità TCP sono configurati sulle porte di servizio a cui fa riferimento qualsiasi risorsa Route dell'API Gateway.
    • Per tutte le richieste in entrata ai servizi viene configurato un timeout predefinito di 30 secondi.
    • L'affinità sessione è disattivata.
  • L'autoiniettore Envoy supporta solo un mesh per parco risorse.
  • Le funzionalità di sicurezza di Traffic Director non possono essere abilitate utilizzando l'API Gateway.
  • Devi configurare le risorse TDMesh e Route su GKE utilizzando solo l'API Gateway. Non puoi utilizzare la console Google Cloud, gcloud CLI o le API REST.
  • Tutti i cluster devono trovarsi in un progetto. Non è supportato un mesh di servizi che copre cluster in più progetti.
  • Non puoi configurare o visualizzare un mesh di servizi GKE utilizzando la console Google Cloud.
  • L'osservabilità del piano di controllo con Cloud Logging e Cloud Monitoring non è supportata.

Passaggi successivi