Traffico in entrata per la tua rete mesh

Un mesh di servizi facilita le comunicazioni tra i servizi in esecuzione mesh. Come puoi inserire il traffico nella tua rete mesh? Puoi utilizzare un gateway per indirizzare il traffico dall'esterno del mesh al tuo mesh attraverso un punto di ingresso.

Questo documento descrive come utilizzare Cloud Load Balancing come gateway per ottenere traffico nella tua rete mesh e include quanto segue:

  • Considerazioni generali per il tuo gateway.
  • Una panoramica delle opzioni disponibili per la selezione di un gateway per il mesh.
  • Suggerimenti dell'architettura che puoi applicare alla topologia gateway.

In questo documento, il gateway si riferisce a una soluzione o a un modello per la gestione traffico destinato a un servizio nel tuo mesh. Il gateway in entrata di Istio è un'implementazione di questo pattern. In questo documento, gateway è un nome generico termine che si riferisce al pattern generale, non all'implementazione di Istio.

Questo documento riguarda le API Cloud Service Mesh. Dopo il per le operazioni preliminari di configurazione, consulta che contiene istruzioni per il deployment con un gateway in entrata.

Quando progetti il tuo mesh di servizi, considera il traffico proveniente le seguenti fonti:

  • Traffico che ha origine all'interno della rete mesh
  • Traffico che ha origine al di fuori della tua rete mesh

Il traffico che ha origine all'interno del mesh viaggia sui dati del mesh di servizi per raggiungere un backend o un endpoint associati al servizio di destinazione. Tuttavia, il traffico che ha origine al di fuori del tuo mesh deve prima raggiungere e il piano dati del mesh di servizi.

Nell'esempio seguente di traffico che ha origine all'interno del tuo mesh: Cloud Service Mesh configura i proxy sidecar. Questi proxy collaterali formano al piano dati del tuo mesh di servizi. Se il servizio A vuole comunicare con Nel servizio B, si verifica quanto segue:

  1. Il servizio A invia una richiesta al servizio B per nome.
  2. Questa richiesta viene intercettata e reindirizzata al proxy sidecar del servizio A.
  3. Il proxy sidecar invia quindi la richiesta a un endpoint associato a Servizio B.
Il piano dati del mesh gestisce il traffico interno al mesh di servizi.
Il piano dati del mesh gestisce il traffico interno al mesh di servizi (fai clic per ingrandire)


Nell'esempio seguente, il traffico ha origine al di fuori del tuo mesh di servizi e non si sposta lungo il piano dati del mesh di servizi.

Il piano dati del mesh di servizi non gestisce il traffico esterno
        al mesh di servizi.
Il piano dati del mesh di servizi non gestisce il traffico esterno al mesh di servizi (fai clic per ingrandire)

In questo esempio, il client è esterno al mesh di servizi. Poiché non partecipino direttamente al mesh, il client non sa a quali endpoint appartengono ai servizi all'interno del mesh. In altre parole, perché il client non utilizzare un proxy configurato da Cloud Service Mesh per inviare le richieste in uscita, sapere quali coppie indirizzo IP-porta utilizzare per inviare il traffico al servizio A o Servizio B. Senza queste informazioni, il cliente non può raggiungere i servizi al suo interno della tua rete mesh.

Considerazioni relative al gateway

Questa sezione fornisce una panoramica dei problemi da considerare quando selezioni un gateway VPN ad alta disponibilità, tra cui:

  • In che modo i clienti possono raggiungere il mio gateway?
  • Quali criteri voglio applicare al traffico che raggiunge il mio gateway?
  • In che modo il gateway distribuisce il traffico ai servizi nel mio mesh?

Consenti ai client di raggiungere il gateway del tuo mesh

client, sulla rete internet pubblica, nel tuo ambiente on-premise in Google Cloud, necessitano di un modo per raggiungere un servizio all'interno della tua rete mesh. Raggiungimento un servizio nel mesh si ottiene in genere utilizzando un servizio un indirizzo IP e una porta instradabili che si risolvono in un gateway. Clienti esterni al tuo la rete mesh utilizza questo indirizzo IP e questa porta per inviare richieste ai servizi nel tuo mesh attraverso il gateway.

Cloud Load Balancing offre diverse opzioni di bilanciamento come gateway per la rete mesh. Le domande principali da porre quando scegli un Il bilanciatore del carico di Google Cloud che funga da gateway sono i seguenti:

  • I miei clienti sono sulla rete internet pubblica, in un ambiente on-premise o in della mia rete Virtual Private Cloud (VPC)?
  • Quali protocolli di comunicazione utilizzano i miei clienti?

Per una panoramica delle opzioni di Cloud Load Balancing, a seconda del client posizione e protocollo di comunicazione, consulta le Sezione Scegli un gateway per la tua rete mesh.

Gestisci il traffico al gateway

Poiché il gateway si trova sul perimetro del mesh, tra i client che sono all'esterno della rete mesh e i servizi al loro interno, ovvero il gateway è la posizione naturale in cui applicare i criteri quando il traffico entra nel mesh. Questi includono quanto segue:

  • Gestione del traffico, ad esempio routing, reindirizzamenti e richieste trasformazione
  • Sicurezza, ad esempio terminazione TLS e Google Cloud Armor distribuito Protezione dagli attacchi DDoS (Denial of Service)
  • Memorizzazione nella cache di Cloud CDN

La sezione Scegli un gateway per il mesh è evidenziata i criteri pertinenti sul perimetro della rete mesh.

Invia traffico dal gateway a un servizio nel tuo mesh

Dopo che il gateway ha applicato i criteri al traffico in entrata, decide a dove inviare il traffico. Utilizzi la gestione del traffico e il bilanciamento del carico criteri per configurarla. Ad esempio, il gateway potrebbe ispezionare la richiesta per identificare il servizio mesh che deve ricevere il traffico. Dopo il identifica il servizio, distribuisce il traffico a un backend specifico in base a un criterio di bilanciamento del carico.

La sezione Scegli un gateway per il mesh illustra le backend a cui un gateway può inviare traffico.

Scegli un gateway per la tua rete mesh

Google Cloud offre un'ampia gamma di bilanciatori del carico che possono fungere da gateway al tuo mesh. Questa sezione illustra la selezione di un gateway, confrontando le seguenti opzioni insieme alle dimensioni pertinenti al pattern del gateway:

In questa sezione facciamo riferimento ai gateway di primo livello e di secondo livello. Questi vengono usati per descrivere l'uso di uno o due gateway per gestire del traffico in entrata verso la tua rete mesh.

Potrebbe essere necessario un solo livello, un singolo bilanciatore del carico che funga da gateway alla rete mesh. A volte, però, ha senso avere più gateway. Nella queste configurazioni: un gateway gestisce il traffico in entrata in Google Cloud, e un gateway di secondo livello separato gestisce il traffico quando entra nel servizio mesh.

Ad esempio, potresti voler applicare la sicurezza di Google Cloud Armor criteri per il traffico in entrata in Google Cloud e gestione avanzata del traffico i criteri per il traffico che entra nel mesh. Lo schema di utilizzo di un secondo Nella sezione viene illustrato il gateway configurato da Cloud Service Mesh Gestisci il traffico in entrata utilizzando un gateway di secondo livello sul perimetro della rete mesh.

La tabella seguente mette a confronto le funzionalità disponibili, a seconda del gateway VPN ad alta disponibilità.

Gateway Posizione client Protocolli Criteri Backend/endpoint
Bilanciatore del carico delle applicazioni interno

Client basati su Google Cloud nella stessa regione del carico con il bilanciatore del carico di rete passthrough esterno regionale.

I client on-premise le cui richieste arrivano nello stesso regione Google Cloud come bilanciatore del carico, ad esempio usando Cloud VPN o Cloud Interconnect.

HTTP/1.1

HTTP/2

HTTPS

Gestione avanzata del traffico

Terminazione TLS mediante certificati autogestiti

I backend nella stessa regione Google Cloud del bilanciatore del carico, in esecuzione su:

  • Backend di istanze di macchine virtuali (VM) su Compute Engine
  • Istanze di container su Google Kubernetes Engine (GKE) e Kubernetes
Application Load Balancer esterno Client sulla rete internet pubblica

HTTP/1.1

HTTP/2

HTTPS

Gestione del traffico

Cloud CDN (inclusi i backend dei bucket Cloud Storage)

Terminazione TLS utilizzando certificati autogestiti o da Google

Criteri SSL

Google Cloud Armor per la prevenzione degli attacchi DDoS e web

Supporto di Identity-Aware Proxy (IAP) per l'autenticazione utente

Backend in qualsiasi regione Google Cloud, in esecuzione su:

  • VM su Compute Engine
  • Istanze di container su GKE e Kubernetes
Bilanciatore del carico di rete passthrough interno

client basati su Google Cloud in qualsiasi regione; per cui è richiesta una gestione se i client si trovano in una regione diversa rispetto al bilanciatore del carico.

Client on-premise le cui richieste arrivano in qualsiasi Google Cloud in ogni regione, ad esempio utilizzando Cloud VPN o Cloud Interconnect.

TCP I backend nella stessa regione Google Cloud del bilanciatore del carico, in esecuzione su VM su Compute Engine.
Bilanciatore del carico di rete passthrough esterno Client sulla rete internet pubblica TCP o UDP I backend nella stessa regione Google Cloud del bilanciatore del carico, in esecuzione su VM su Compute Engine.
Bilanciatore del carico di rete proxy esterno Client sulla rete internet pubblica SSL o TCP

Terminazione TLS utilizzando certificati gestiti da Google o autogestiti (proxy SSL )

Criteri SSL (solo proxy SSL)

Backend in qualsiasi regione Google Cloud, in esecuzione su:

  • VM su Compute Engine
  • Istanze di container su GKE e Kubernetes
Proxy perimetrale
(su istanze VM o container) configurato da Cloud Service Mesh
I clienti devono trovarsi in una località in cui si applica una delle seguenti condizioni:
  • Possono inviare una richiesta a un bilanciatore del carico gestito da Google Cloud, che quindi invia la richiesta al proxy perimetrale. Per maggiori dettagli, vedi Handle il traffico in entrata utilizzando un gateway di secondo livello sul perimetro della rete mesh.
  • Possono inviare una richiesta attraverso un proxy, ad esempio un file collaterale. proxy configurato da Cloud Service Mesh.
  • Possono inviare una richiesta direttamente all'indirizzo IP e alla porta di una VM oppure un'istanza di container che esegue il proxy perimetrale.

HTTP/1.1

HTTP/2

Livello avanzato gestione del traffico (compresa l'assistenza di regex)

Backend in qualsiasi regione Google Cloud, in esecuzione su:

  • VM su Compute Engine
  • Istanze di container su GKE e Kubernetes

Per un confronto dettagliato tra funzione, vedi pagina Funzionalità del bilanciatore del carico. Per una panoramica delle funzionalità di Cloud Service Mesh, consulta Funzionalità di Cloud Service Mesh.

Esegui il deployment e la configurazione dei gateway

Un'ultima considerazione nella scelta del gateway è l'esperienza dello sviluppatore e che vuoi utilizzare. Google Cloud offre diversi approcci creando e gestendo il gateway.

API Google Cloud CLI e Compute Engine

Per configurare i prodotti e il bilanciamento del carico gestiti di Google Cloud Cloud Service Mesh, puoi utilizzare Google Cloud CLI e le API Compute Engine. gcloud CLI e le API forniscono meccanismi per eseguire il deployment e configurare le risorse Google Cloud in modo imperativo. Per automatizzare ripetitive, puoi creare script.

Console Google Cloud

Configurazione di Cloud Service Mesh e del carico gestito di Google Cloud puoi usare la console Google Cloud.

Per configurare il pattern del gateway, probabilmente avrai bisogno di entrambe pagina Cloud Service Mesh e Pagina Bilanciamento del carico.

GKE e Ingress multi-cluster

Anche i controller di rete GKE e GKE Enterprise supportano il deployment di Cloud Load Balancing per l'integrazione integrata il networking dei container. Forniscono un'interfaccia dichiarativa in stile Kubernetes il deployment e la configurazione dei gateway. GKE Ingress e Ingress multi-cluster che i controller gestiscono interno e un carico esterno bilanciatori per l'invio del traffico a un singolo cluster o su più cluster GKE. La risorsa Ingress può essere configurata anche per puntare ai servizi configurati da Cloud Service Mesh di cui viene eseguito il deployment in cluster GKE.

Pattern di architettura del gateway

Questa sezione descrive pattern di alto livello e fornisce diagrammi dell'architettura per il gateway.

Il pattern più comune prevede l'utilizzo di un carico gestito da Google Cloud come gateway:

  1. I client inviano il traffico a un bilanciatore del carico gestito da Google Cloud funge da gateway.

    • Il gateway applica i criteri.
  2. Il gateway invia il traffico a un servizio nel tuo mesh.

Un pattern più avanzato coinvolge i gateway a due livelli. I gateway funzionano come segue:

  1. I client inviano il traffico a un bilanciatore del carico gestito da Google Cloud che agisce come gateway di primo livello.

    • Il gateway applica i criteri.
  2. Il gateway invia il traffico a un proxy perimetrale (o a un pool di proxy perimetrali) configurato da Cloud Service Mesh. Questo proxy perimetrale agisce come un proxy di secondo livello gateway VPN ad alta disponibilità. Questo livello fa quanto segue:

    • Fornisce una chiara separazione dei problemi in cui, ad esempio, un team viene responsabile del traffico in entrata che entra in Google Cloud mentre responsabile del traffico in entrata che entra nella rete mesh del team.

    • Consente di applicare criteri che potrebbero non essere supportati nel Bilanciatore del carico gestito da Google Cloud.

  3. Il gateway di secondo livello invia il traffico a un servizio nel tuo mesh.

Il pattern in entrata termina dopo che il traffico raggiunge un servizio in-mesh. Entrambi i campi Nelle sezioni che seguono vengono descritti i casi comuni e i pattern avanzati.

Abilita il traffico in entrata da internet

Se i tuoi clienti non si trovano a Google Cloud e devono raggiungere tramite la rete internet pubblica, puoi utilizzare una delle seguenti opzioni bilanciatori del carico come gateway:

Traffico in entrata dai client sulla rete internet pubblica ai servizi in-mesh utilizzando un bilanciatore del carico.
Traffico in entrata dai client sulla rete internet pubblica ai servizi in-mesh utilizzando un bilanciatore del carico (fai clic per ingrandire)

In questo pattern, il bilanciatore del carico gestito da Google Cloud funge da gateway VPN ad alta disponibilità. Il gateway gestisce il traffico in entrata prima di inoltrarlo a un servizio nella tua rete mesh.

Ad esempio, potresti scegliere un bilanciatore del carico delle applicazioni esterno come gateway per utilizza quanto segue:

  • Un indirizzo IP Anycast globale instradabile pubblicamente, che riduce al minimo la latenza e costi di attraversamento della rete.
  • Google Cloud Armor e terminazione TLS per proteggere il traffico verso il tuo mesh.
  • Cloud CDN per la pubblicazione di contenuti web e video.
  • Funzionalità di gestione del traffico come il routing basato su host e basato su percorso.

Per ulteriori informazioni che ti aiutino a scegliere un gateway appropriato, consulta la Sezione Scegli un gateway per la tua rete mesh.

Abilita il traffico in entrata dai client nel VPC e dalle reti on-premise connesse

Se i tuoi client si trovano all'interno della tua rete VPC on-premise e può raggiungere i servizi Google Cloud utilizzando una come metodo di connettività Cloud VPN o Cloud Interconnect), puoi utilizzare uno dei seguenti bilanciatori del carico come gateway:

Traffico in entrata dai client su una rete VPC ai servizi in-mesh utilizzando un bilanciatore del carico.
Traffico in entrata dai client su una rete VPC ai servizi in-mesh utilizzando un bilanciatore del carico (fai clic per ingrandire)

In questo pattern, il bilanciatore del carico gestito da Google Cloud funge da gateway VPN ad alta disponibilità. Il gateway gestisce il traffico in entrata prima di inoltrarlo a un servizio nella tua rete mesh.

Ad esempio, potresti scegliere un bilanciatore del carico delle applicazioni interno come gateway in modo da poter utilizzare queste funzionalità:

  • Un indirizzo IP con indirizzo privato
  • Terminazione TLS per proteggere la rete mesh
  • Funzionalità avanzate di gestione del traffico, come il traffico basato sul peso suddivisione
  • NEG come backend

Per ulteriori informazioni che ti aiutino a scegliere un gateway appropriato, consulta la Sezione Scegli un gateway per la tua rete mesh.

Gestisci il traffico in entrata utilizzando un gateway di secondo livello sul perimetro della rete mesh

A seconda delle tue esigenze, puoi prendere in considerazione un pattern più avanzato che aggiunga una gateway aggiuntivo.

Traffico in entrata da client esterni a servizi in-mesh utilizzando un bilanciatore del carico e un proxy perimetrale.
Traffico in entrata da client esterni a servizi in-mesh utilizzando un bilanciatore del carico e un proxy perimetrale (fai clic per ingrandire)

Questo gateway è un proxy perimetrale configurato da Cloud Service Mesh (o pool di proxy) dietro al carico gestito da Google Cloud con il bilanciatore del carico di rete passthrough esterno regionale. Puoi ospitare questo gateway di secondo livello nel tuo progetto utilizzando un pool delle VM di Compute Engine (un'istanza gestita gruppi) o GKE.

Questo pattern è più avanzato, ma offre ulteriori vantaggi:

  • Il bilanciatore del carico gestito da Google Cloud applica un insieme iniziale di sicurezza, ad esempio la protezione di Google Cloud Armor se utilizzi un bilanciatore del carico delle applicazioni esterno.

  • Il proxy perimetrale configurato da Cloud Service Mesh applica un secondo insieme di Criteri che potrebbero non essere disponibili nel carico gestito da Google Cloud con il bilanciatore del carico di rete passthrough esterno regionale. Questi criteri includono la gestione avanzata del traffico che utilizza regolari espressioni applicate alle intestazioni HTTP e alla suddivisione del traffico basata sui pesi.

Questo pattern può essere impostato in modo da riflettere la struttura della tua organizzazione. Ad esempio:

  1. Un team potrebbe essere responsabile della gestione del traffico in entrata Google Cloud, mentre un altro team è responsabile della gestione del traffico in entrata traffico al suo mesh.

  2. Se più team offrono servizi su un VPC condiviso, con ogni proprietario di un proprio progetto di servizio, i team possono usare questo pattern e applicare criteri nei propri mesh. Ogni team può esporre Gateway configurato da Cloud Service Mesh e raggiungibile su un singolo IP indirizzo IP e porta. Un team può quindi definire e gestire in modo indipendente i criteri applicati al traffico in entrata nella rete mesh del team.

Questo pattern può essere implementato utilizzando qualsiasi modello purché sia in grado di inviare traffico ai backend che ospitano i gateway configurati da Cloud Service Mesh.

Utilizza le API di routing dei servizi per il traffico in entrata

Le API di routing dei servizi forniscono la risorsa Gateway per configurazione della gestione del traffico e della sicurezza per i proxy Envoy che fungono da gateway in entrata, consentendo ai client esterni di connettersi al mesh di servizi (nord-sud). Per saperne di più, leggi la panoramica del routing dei servizi e Configurare un gateway in entrata.

Passaggi successivi