Informazioni sui gateway multi-cluster

Questo documento descrive il funzionamento dei gateway multicluster in Google Kubernetes Engine (GKE). I gateway multi-cluster sono una potente soluzione di networking che ti consente di gestire il traffico per i servizi di cui è stato eseguito il deployment in più cluster GKE.

Questo documento è destinato agli architetti cloud e agli specialisti di networking che progettano e realizzano l'architettura della rete della loro organizzazione. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli utente e attività comuni di GKE Enterprise.

Panoramica

Il gateway multi-cluster viene configurato utilizzando le risorse dell'API Gateway di Kubernetes. Il controller GKE Gateway monitora queste risorse (Gateway, HTTPRoute) ed esegue automaticamente il provisioning e la manutenzione dell'infrastruttura di bilanciamento del carico globale richiesta.Google Cloud Questa infrastruttura fornisce una gestione avanzata del traffico per i servizi di cui è stato eseguito il deployment in più cluster GKE all'interno di un parco risorse. Multi-cluster Gateways utilizza l'infrastruttura di bilanciamento del carico globale di Google Cloudper fornire un unico punto di accesso unificato per le tue applicazioni. Questo approccio presenta i seguenti vantaggi:

  • Semplifica la gestione
  • Migliora l'affidabilità
  • Consente funzionalità avanzate di gestione del traffico

Funzionalità di gestione del traffico

I gateway multi-cluster offrono funzionalità avanzate per gestire il traffico in più cluster. Puoi implementare strategie di routing sofisticate, come implementazioni in più fasi e strategie blu/verde, per eseguire il deployment delle modifiche in sicurezza. Per un controllo granulare, puoi utilizzare la corrispondenza basata sull'intestazione per testare le modifiche con una piccola percentuale di traffico o dividere il traffico in base al peso per spostare gradualmente le richieste tra diversi backend del cluster.

I gateway multicluster consentono anche di eseguire il mirroring del traffico, che invia una copia delle richieste degli utenti live a un nuovo servizio per testare le prestazioni senza influire sugli utenti. Per garantire l'affidabilità ed evitare sovraccarichi, i gateway multi-cluster supportano il failover basato sullo stato e il bilanciamento del carico basato sulla capacità, che distribuisce le richieste in base alla capacità definita dei tuoi servizi.

Come funziona il gateway multi-cluster

Tutti i cluster GKE che partecipano a una configurazione di gateway multi-cluster devono essere registrati in un parco risorse. Un parco risorse fornisce un raggruppamento logico di cluster, che consente una gestione e una comunicazione coerenti tra i cluster. Un cluster GKE all'interno del parco risorse è designato come cluster di configurazione.

Il cluster di configurazione funge da punto di controllo centralizzato per la configurazione di Gateway multicluster. Esegui il deployment di tutte le risorse dell'API Gateway multi-cluster, come Gateway e HTTPRoute, solo in questo cluster designato. Il controller GKE Gateway monitora il server API Kubernetes del cluster di configurazione per queste risorse.

Per scegliere un cluster di configurazione, prendi in considerazione un cluster GKE a disponibilità elevata, ad esempio un cluster regionale. In questo modo, gli aggiornamenti alle risorse API Gateway possono essere riconciliati continuamente dal controller.

Il controller Gateway multi-cluster utilizza i servizi multi-cluster (MCS) per rilevare e accedere ai servizi Kubernetes in più cluster GKE all'interno di un parco risorse. MCS è una funzionalità di GKE che consente l'individuazione e la connettività dei servizi tra i servizi eseguiti in cluster GKE diversi all'interno di un parco risorse.

MCG utilizza MCS per scoprire quali servizi sono disponibili in quali cluster per instradare il traffico esterno ai servizi. Il controller MCG utilizza le risorse dell'API MCS per raggruppare i pod in un unico servizio indirizzabile e che si estende su più cluster.

In base alle configurazioni definite nelle risorse API Gateway, il controller GKE Gateway fornisce un bilanciatore del carico delle applicazioni esterno o interno. Questo bilanciatore del carico funge da frontend per la tua applicazione e distribuisce il traffico direttamente ai pod integri del tuo parco risorse, indipendentemente dalla loro posizione.

I seguenti passaggi di alto livello descrivono la procedura per eseguire il deployment di un gateway multicluster:

  1. Definisci un gateway: in una configurazione di gateway multi-cluster, crei una risorsa Gateway che definisce il punto di ingresso per il traffico nel cluster di configurazione. La risorsa Gateway specifica una GatewayClass, che è un modello per un particolare tipo di bilanciatore del carico, ad esempio un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico delle applicazioni interno regionale. In GKE, le seguenti GatewayClass eseguono il deployment di gateway multi-cluster:

    • gke-l7-global-external-managed-mc: esegue il provisioning di un bilanciatore del carico delle applicazioni esterno globale.
    • gke-l7-regional-external-managed-mc: esegue il provisioning di un bilanciatore del carico delle applicazioni esterno regionale.
    • gke-l7-cross-regional-internal-managed-mc: esegue il provisioning di un bilanciatore del carico delle applicazioni interno.
    • gke-l7-rilb-mc: esegue il provisioning di un bilanciatore del carico delle applicazioni interno.
    • gke-l7-gxlb-mc: esegue il provisioning di un bilanciatore del carico delle applicazioni classico.

    Il gateway definisce anche il modo in cui il bilanciatore del carico ascolta il traffico in entrata specificando quali listener di rete (porte e protocolli) esporre. Per saperne di più sulle Gateway Class supportate da GKE, consulta Multi-cluster Services.

  2. Collega HTTPRoute al gateway: le risorse HTTPRoute definiscono in che modo il traffico HTTP/S in entrata viene instradato a servizi di backend specifici. Le HTTPRoute sono associate alle risorse Gateway e specificano regole basate su nomi host, percorsi, intestazioni e altro ancora. HTTPRoute supporta anche funzionalità avanzate di gestione del traffico come la suddivisione e il mirroring del traffico.

  3. Crea bilanciatore del carico: quando esegui il deployment delle risorse Gateway e HTTPRoute, il controller GKE Gateway interpreta questi oggetti API e, a sua volta, configura dinamicamente l'infrastruttura di bilanciamento del carico Google Cloud necessaria. Il bilanciatore del carico indirizza quindi il traffico ai pod corretti, indipendentemente dal cluster in cui si trovano. Questo processo fornisce un modo altamente efficiente e scalabile per instradare il traffico.

Flusso di traffico

Il seguente diagramma illustra come funziona un gateway multi-cluster come bilanciatore del carico centralizzato per le applicazioni eseguite su due cluster GKE in regioni diverse:

Architettura del gateway multi-cluster in GKE.
Figura: architettura del gateway multi-cluster

Il comportamento del bilanciatore del carico è configurato in base alle regole definite nelle risorse HTTPRoute. Quando il traffico utente arriva all'indirizzo IP del bilanciatore del carico Google Cloud di cui è stato eseguito il provisioning (come definito dalla risorsa Gateway), il bilanciatore del carico, che è un proxy gestito da Google, instrada il traffico. Questo proxy (un proxy Google Front End (GFE) o un proxy regionale) indirizza il traffico all'endpoint del servizio di backend appropriato all'interno del cluster GKE corretto, in base ai seguenti criteri:

  • Controlli di integrità
  • Regole di suddivisione del traffico
  • Capacità

Il traffico viene indirizzato direttamente al pod ottimale nel cluster selezionato.

Passaggi successivi