Panoramica del mesh di servizi GKE di Cloud Service Mesh
Questa configurazione è supportata per i clienti Preview, ma non è consigliata per i nuovi utenti di Cloud Service Mesh. Per saperne di più, consulta la panoramica di Cloud Service Mesh.
Questo documento è rivolto agli utenti di Google Kubernetes Engine che vogliono eseguire il deployment di un servizio mesh Cloud Service Mesh utilizzando l'API Kubernetes Gateway.
Puoi configurare Cloud Service Mesh per GKE utilizzando le API Kubernetes Gateway, attivando 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 di service mesh.
API Kubernetes e API Google Cloud
Puoi configurare un service mesh Cloud Service Mesh utilizzando due API diverse:
- API Google Cloud, che possono essere le API di routing dei servizi o le API precedenti
- API Kubernetes Gateway
Questo documento e le guide alla configurazione associate forniscono istruzioni per l'utilizzo dell'API Kubernetes Gateway per configurare un mesh di servizi Cloud Service Mesh.
Ti consigliamo di utilizzare le API Kubernetes Gateway su Google Kubernetes Engine e sconsigliamo di 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 Kubernetes Gateway, il che semplifica l'utilizzo delle due API. Il cluster Kubernetes e le risorse configurate sono equivalenti dal punto di vista funzionale a Google Cloud risorse rappresentate dall'API di routing dei servizi per Cloud Service Mesh.
Le sezioni seguenti descrivono le risorse e l'architettura utilizzate dall'integrazione di Cloud Service Mesh con le API Kubernetes Gateway.
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 incentrato sul supporto dei casi d'uso di ingress e load balancer grazie a un'API di routing generica. L'API di routing generica include implementazioni. Vengono aggiunte le definizioni delle risorse personalizzate (CRD) di Cloud Service Mesh come estensione dell'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 principale Gateway e un GatewayClass
associato a cui colleghi i percorsi. GKE include una risorsa TDMesh
che è un peer della risorsa Gateway
. Puoi collegare gli stessi tipi di Route
alla risorsa TDMesh
. La risorsa TDMesh
è dove colleghi route e criteri per i mesh di servizi.
Parco risorse
Un parco risorse è composto da uno o più cluster GKE raggruppate logicamente. Un parco risorse ti consente di gestire le funzionalità e applicare i criteri in modo coerente su più cluster. Quando utilizzi un parco risorse, puoi gestire un mesh di servizi Cloud Service Mesh che si estende su più cluster.
Architettura
Cloud Service Mesh supporta l'API Gateway su GKE programmando i data plane dei cluster per implementare i comportamenti di rete specificati nelle risorse dell'API Gateway. Il mesh di servizi cloud stesso è un servizio gestito da Google di controllo che non elabora il traffico del piano dati. I proxy Envoy che vengono eseguiti come sidecar per i tuoi carichi di lavoro o i client gRPC proxyless elaborano il traffico nel piano dati. Cloud Service Mesh configura sia proxy Envoy che proxyless Client gRPC tramite l'API xDSv3.
Cloud Service Mesh offre una soluzione per il piano di controllo gestita e disponibile a livello globale più robusto e scalabile rispetto all'esecuzione di controller nel cluster. Poiché si tratta di una soluzione globale, Cloud Service Mesh può bilanciare il carico del traffico tra i carichi di lavoro distribuiti su più cluster GKE. Nella illustrazione seguente: Cloud Service Mesh gestisce il traffico verso i servizi in tre in un unico parco risorse, utilizzando le risorse dell'API Gateway.
Designa 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 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 Design del cluster di configurazione nella documentazione di GKE.
Con i servizi multicluster di GKE, le risorse dell'API Gateway nel cluster di configurazione possono fare riferimento ai servizi Kubernetes in qualsiasi cluster all'interno di un parco. Per ulteriori informazioni su Multi-Cluster Service Discovery, consulta Servizi multi-cluster.
Risorse
Cloud Service Mesh supporta sia proxy Envoy che gRPC senza proxy nei dati
di un mesh di servizi. Entrambi i client ricevono la configurazione da Cloud Service Mesh per un determinato service mesh 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 Kubernetes Gateway forniscono configurazioni di piano dati di dimostrazione con Envoy e gRPC proxyless.
TDMesh
risorsa
La
risorsa TDMesh
è una risorsa personalizzata di Cloud Service Mesh. È un'estensione dell'open source
API gateway per supportare i casi d'uso del mesh di servizi di Cloud Service Mesh. Utilizzando la risorsa TDMesh
, crei un'istanza di service mesh nel tuo parco risorse. Route
Collegato alla risorsa TDMesh
specifica i comportamenti di routing tra servizi
nel mesh di servizi.
Route
risorse
Un sottoinsieme delle risorse Route dell'API Gateway può essere associato 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
destinati all'host payments.svc.internal
vengono instradati 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 integra le risorse Route
generiche nell'API Gateway con un
nuovo tipo di percorso, TDGRPCRoute
. Il nuovo tipo di route offre un'esperienza di primo livello per l'indirizzamento delle richieste gRPC, tramite la corrispondenza con le primitive gRPC native, come le definizioni di metodi e servizi.
Limitazioni
- Cloud Service Mesh configura i seguenti comportamenti predefiniti per tutti
dai servizi Kubernetes nel mesh di servizi. Non puoi modificare questi comportamenti.
- I controlli di integrità TCP sono configurati sulle porte di servizio a cui fa riferimento
eventuali risorse
Route
dell'API Gateway. - Per impostazione predefinita, è configurato un timeout di 30 secondi per tutte le richieste in entrata ai servizi.
- Affinità sessione è disabilitata.
- I controlli di integrità TCP sono configurati sulle porte di servizio a cui fa riferimento
eventuali risorse
- La Iniettore automatico Envoy supporta un solo mesh per parco risorse.
- Le funzionalità di sicurezza di Cloud Service Mesh non possono essere abilitate utilizzando API Gateway.
- Devi configurare le risorse
TDMesh
eRoute
su GKE usando solo l'API Gateway. Non puoi utilizzare Console Google Cloud, gcloud CLI o le API REST. - Tutti i cluster devono trovarsi in un progetto. Un service mesh che si estende su cluster in più progetti non è supportato.
- Non puoi configurare o visualizzare un service mesh GKE utilizzando la console Google Cloud.
- L'osservabilità del control plane con Cloud Logging e Cloud Monitoring non è supportata.
Passaggi successivi
- Scopri di più sulla preparazione per la configurazione di un mesh di servizi con l'API Gateway.