Panoramica del mesh di servizi GKE di Cloud Service Mesh
Questa configurazione è supportata per i clienti in anteprima, ma non è consigliata per i nuovi utenti di Cloud Service Mesh. Per ulteriori informazioni, consulta la panoramica di Cloud Service Mesh.
Questo documento è rivolto agli utenti di Google Kubernetes Engine che vogliono eseguire il deployment di un mesh di servizi Cloud Service Mesh utilizzando l'API Kubernetes Gateway.
Puoi configurare Cloud Service Mesh per GKE utilizzando le API gateway di 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 Cloud Service Mesh utilizzando due API diverse:
- API Google Cloud, che possono essere le API di routing dei servizi o le API precedenti
- API gateway Kubernetes
Questo documento e le guide alla configurazione associate forniscono istruzioni sull'utilizzo dell'API Kubernetes Gateway per configurare un mesh di servizi Cloud Service Mesh.
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 delle risorse delle API gateway di Kubernetes, il che semplifica l'utilizzo delle due API. Le risorse Kubernetes configurate sono equivalenti dal punto di vista funzionale alle risorse Google Cloud rappresentate dall'API di routing dei servizi per Cloud Service Mesh.
Le seguenti sezioni descrivono le risorse e l'architettura utilizzate dall'integrazione di Cloud Service Mesh 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 Ingress e bilanciatore del carico fornendo un'API di routing generica. L'API di routing generica ha molte implementazioni. Le definizioni di risorse personalizzate (CRD) di Cloud Service Mesh vengono aggiunte come estensione all'API Gateway open source. Le CRD supportano i casi d'uso del mesh di servizi e usano la stessa API di routing generica introdotta dall'API Gateway.
L'API Gateway è organizzata in modo gerarchico, con una risorsa padre Gateway e 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
. La risorsa TDMesh
è il luogo in cui colleghi route e criteri per i mesh di servizi.
Parco risorse
Un parco risorse è costituito da uno o più cluster GKE raggruppati logicamente. 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 Cloud Service Mesh che copre più cluster.
Architettura
Cloud Service Mesh supporta l'API Gateway su GKE programmando i piani dati dei tuoi cluster per implementare i comportamenti di networking specificati nelle risorse dell'API Gateway. Cloud Service Mesh è un piano di controllo gestito da Google che non elabora il traffico del piano dati. I proxy Envoy in esecuzione come sidecar per i tuoi carichi di lavoro o client gRPC senza proxy elaborano il traffico nel piano dati. Cloud Service Mesh configura i proxy Envoy e i client gRPC senza proxy tramite l'API xDSv3.
Cloud Service Mesh offre una soluzione del piano di controllo gestita e disponibile a livello globale, più robusta e scalabile rispetto all'esecuzione dei controller nel cluster. Poiché è una soluzione globale, Cloud Service Mesh può bilanciare il carico del traffico fra carichi di lavoro distribuiti su più cluster GKE. Nell'illustrazione seguente, Cloud Service Mesh gestisce il traffico verso i servizi in tre cluster che si trovano in un unico parco risorse, utilizzando le risorse dell'API Gateway.
Puoi designare un cluster nel tuo parco risorse come cluster di configurazione. Il cluster di configurazione è il luogo in cui vengono archiviate le risorse dell'API Gateway. Cloud Service Mesh monitora solo le risorse che si trovano nel cluster di configurazione e ignora le risorse che si trovano in altri cluster nel parco risorse. Per informazioni più dettagliate sul cluster di configurazione, consulta Configurazione della progettazione di GKE.
Con i servizi multi-cluster GKE, le risorse API gateway nel cluster di configurazione possono fare riferimento ai servizi Kubernetes in qualsiasi cluster all'interno di un parco risorse. Per ulteriori informazioni su Multi-Cluster Service Discovery, consulta Servizi multi-cluster.
Risorse
Cloud Service Mesh supporta sia proxy Envoy che gRPC senza proxy nel piano dati di un mesh di servizi. Entrambi i client ricevono la configurazione da Cloud Service Mesh per un particolare mesh di servizi, specificando il nome e il numero di progetto corrispondente della risorsa TDMesh
nella rispettiva configurazione di bootstrap. Le guide alla configurazione di Cloud Service Mesh con le API gateway Kubernetes forniscono configurazioni dimostrative del piano dati con Envoy e gRPC senza proxy.
TDMesh
risorsa
La risorsa TDMesh
è una risorsa personalizzata Cloud Service Mesh. È un'estensione delle API Gateway open source
per supportare i casi d'uso del mesh di servizi di Cloud Service Mesh. Utilizzando la risorsa TDMesh
, puoi creare un'istanza del 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
Route API gateway può essere collegato a una risorsa TDMesh
per specificare il routing a livello di servizio
all'interno del mesh di servizi. Cloud Service Mesh supporta le seguenti risorse Route
:
HTTPRoute
TCPRoute
TDGRPCRoute
(risorsa personalizzata Cloud Service Mesh)
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 fornisce un'esperienza di prima classe per il routing delle richieste gRPC, con corrispondenze in base alle primitive gRPC native, come le definizioni di metodi e servizi.
Limitazioni
- Cloud Service Mesh 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. - Viene configurato un timeout predefinito di 30 secondi per tutte le richieste in entrata ai servizi.
- L'affinità sessione è disattivata.
- I controlli di integrità TCP sono configurati sulle porte di servizio a cui fa riferimento qualsiasi risorsa
- L'iniettore automatico Envoy supporta solo un mesh per parco risorse.
- Le funzionalità di sicurezza di Cloud Service Mesh non possono essere abilitate utilizzando l'API Gateway.
- Devi configurare le risorse
TDMesh
eRoute
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 unico progetto. Non è supportato un mesh di servizi tra 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
- Scopri come prepararti per configurare un mesh di servizi con l'API Gateway.