Panoramica del mesh di servizi GKE di Cloud Service Mesh

Questa configurazione è supportata per i clienti del servizio Anteprima, ma è sconsigliata per i nuovi utenti di Cloud Service Mesh. Per ulteriori informazioni, consulta Panoramica di Cloud Service Mesh.

Questo documento è rivolto agli utenti di Google Kubernetes Engine che vogliono eseguire il deployment Mesh di servizi Cloud Service Mesh utilizzando l'API Gateway di Kubernetes.

Puoi configurare Cloud Service Mesh per GKE utilizzando API Gateway Kubernetes, che abilitano le comunicazioni tra i servizi, il traffico della gestione, del bilanciamento del carico globale e dell'applicazione dei criteri di sicurezza per il servizio e altri casi d'uso mesh.

API Kubernetes e API Google Cloud

Puoi configurare un mesh di servizi Cloud Service Mesh utilizzando due diverse API:

Questo documento e le guide alla configurazione associate forniscono istruzioni per l'utilizzo del 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 Service routing utilizza gli stessi nomi di risorse delle risorse le API Kubernetes Gateway, il che semplifica l'uso 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 seguenti sezioni descrivono le risorse e l'architettura utilizzate 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. Il cluster Kubernetes API Gateway è un progetto open source incentrato sul supporto del traffico in entrata e del bilanciatore del carico per diversi casi d'uso fornendo 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 il mesh di servizi e utilizzare la stessa API di routing generica presentata dal Gateway tramite Google Cloud CLI o tramite l'API Compute Engine.

L'API Gateway è organizzata in modo gerarchico, con una risorsa padre Gateway e associato GatewayClass, a cui colleghi le route. GKE include una risorsa TDMesh che è un peer della risorsa Gateway. Puoi collega gli stessi tipi Route alla risorsa TDMesh. La risorsa TDMesh è in cui colleghi 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 è composto da uno o più cluster GKE raggruppate logicamente. Un parco consente di gestire le funzionalità e applicare i criteri in modo coerente cluster. Quando utilizzi un parco risorse, puoi gestire un mesh di servizi Cloud Service Mesh su più cluster.

Architettura

Cloud Service Mesh supporta l'API Gateway su GKE alla programmazione dei tuoi cluster ai piani dati per implementare i comportamenti di rete specificato 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. Proxy Envoy in esecuzione come sidecar ai carichi di lavoro o i client gRPC senza proxy 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 del piano di controllo gestita e disponibile a livello globale più robusto e scalabile rispetto all'esecuzione di controller nel cluster. Poiché è una soluzione globale, Cloud Service Mesh può bilanciare il carico del traffico di lavoro distribuiti in 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.

Un mesh di servizi multi-cluster Cloud Service Mesh configurato utilizzando l'API Gateway
Un mesh di servizi multi-cluster Cloud Service Mesh configurato utilizzando l'API Gateway (fai clic per ingrandire)

Designa un cluster nel 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. Consulta progetta la progettazione del cluster documentazione di GKE per informazioni più dettagliate sulla configurazione in un cluster Kubernetes.

Con GKE Servizi multi-cluster, Le risorse API Gateway nel cluster di configurazione possono fare riferimento ai servizi Kubernetes in a qualsiasi cluster all'interno di un parco risorse. Consulta Servizi multi-cluster per ulteriori informazioni su Multi-Cluster Service Discovery.

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 Cloud Service Mesh per un determinato mesh di servizi, specificando il nome e numero di progetto corrispondente della risorsa TDMesh nel rispettivo bootstrap configurazione. Le guide alla configurazione di Cloud Service Mesh con le API Kubernetes Gateway fornire configurazioni del piano dati dimostrativo con Envoy e gRPC senza proxy.

TDMesh risorsa

La TDMesh risorsa è 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. Utilizzo la risorsa TDMesh, crei un'istanza del mesh di servizi nel tuo parco risorse. Route Collegato alla risorsa TDMesh specifica i comportamenti di routing tra servizi nel mesh di servizi.

Route risorse

Un sottoinsieme Route API Gateway possono essere collegate a una risorsa TDMesh per specificare il routing a livello di servizio all'interno del mesh di servizi. Cloud Service Mesh supporta i seguenti Route di risorse:

  • 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 delle istanze del piano dati, richieste HTTP inviate dai carichi di lavoro all'interno della rete mesh vengono indirizzati di conseguenza.

Questa release integra le risorse Route generiche nell'API Gateway con un nuovo tipo di percorso, TDGRPCRoute. Il nuovo tipo di percorso offre un percorso di 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 Cloud Service Mesh
Utilizzo delle risorse dell'API Gateway in GKE per configurare Cloud Service Mesh (fai clic per ingrandire)

Limitazioni

  • Cloud Service Mesh configura i seguenti comportamenti predefiniti per tutti dai servizi Kubernetes nel mesh di servizi. Non puoi modificarle i comportamenti dei modelli,
    • I controlli di integrità TCP sono configurati sulle porte di servizio a cui fa riferimento eventuali risorse Route dell'API Gateway.
    • Un valore predefinito di 30 secondi timeout sia configurata per tutte le richieste in entrata ai servizi.
    • Affinità sessione è disabilitata.
  • La Iniettore automatico Envoy supporta un solo mesh per parco risorse.
  • Le funzionalità di sicurezza di Cloud Service Mesh non possono essere abilitate utilizzando il API Gateway.
  • Devi configurare le risorse TDMesh e Route 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 mesh di servizi che comprende più cluster in più progetti non è supportata.
  • Non puoi configurare o visualizzare un mesh di servizi GKE utilizzando la console Google Cloud.
  • Osservabilità del piano di controllo con Cloud Logging e Cloud Monitoring non è supportato.

Passaggi successivi