Questa pagina fornisce una panoramica generale di come Google Kubernetes Engine (GKE) crea e gestisce Cloud Load Balancing. Questa pagina presuppone che tu conosca quanto segue:
- Tipi di bilanciatori del carico Trusted Cloud by S3NS
- La differenza tra i bilanciatori del carico di livello 4 (bilanciatori del carico di rete) e di livello 7 (bilanciatori del carico delle applicazioni)
Questa pagina è rivolta agli architetti cloud e agli specialisti di networking che progettano e realizzano l'architettura di rete per la loro organizzazione. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Trusted Cloud , consulta Ruoli utente e attività comuni di GKE Enterprise.
Come GKE crea i bilanciatori del carico
Per rendere accessibili le tue applicazioni dall'esterno del cluster (utenti esterni) o all'interno della tua rete privata (utenti interni), puoi esporre le tue applicazioni eseguendo il provisioning dei bilanciatori del carico utilizzando le API Gateway, Ingress e Service. In alternativa, puoi creare i componenti del bilanciatore del carico autonomamente, mentre GKE gestisce i gruppi di endpoint di rete (NEG) che collegano il bilanciatore del carico ai pod nel cluster.
Gateway
Il controller GKE Gateway è l'implementazione di Google dell'API Gateway di Kubernetes per Cloud Load Balancing. L'API Gateway è un progetto open source che mira a standardizzare il modo in cui i service mesh e i controller Ingress espongono le applicazioni in Kubernetes. È progettato per essere un successore più espressivo, flessibile ed estensibile della risorsa Ingress.
Il controller GKE Gateway viene utilizzato per configurare i bilanciatori del carico delle applicazioni di livello 7 per esporre il traffico HTTP(S) alle applicazioni in esecuzione nel cluster.
Utilizza l'API Gateway per implementare il bilanciatore del carico.
In entrata
Il controller Ingress GKE è l'implementazione di Google dell'API Ingress. L'API Ingress consente di gestire l'accesso esterno ai servizi eseguiti in un cluster. Quando crei una risorsa Ingress in GKE, il controller configura automaticamente un bilanciatore del carico delle applicazioni di livello 7 che consente al traffico HTTP o HTTP(S) di raggiungere le applicazioni in esecuzione nel cluster.
GKE Gateway è la scelta consigliata per le nuove implementazioni e le applicazioni che richiedono gestione avanzata del traffico, supporto multi-protocollo o una migliore multi-tenancy. Tuttavia, GKE Ingress è un'opzione valida per scenari di routing HTTP/HTTPS più semplici, soprattutto per le configurazioni esistenti in cui i vantaggi della migrazione all'API Gateway potrebbero non superare ancora l'impegno.
Servizi LoadBalancer
L'API Service ti consente di esporre le applicazioni eseguite come pod nel tuo cluster al traffico esterno o interno. Quando crei un servizio di tipo LoadBalancer
, GKE
crea automaticamente un bilanciatore del carico di rete passthrough di livello 4 (TCP/UDP)
in base ai parametri del manifest del servizio.
Nei bilanciatori del carico di rete passthrough, quando il traffico raggiunge le VM di backend, gli indirizzi IP di origine e di destinazione originali, il protocollo di comunicazione (come TCP o UDP) e i numeri di porta (se il protocollo li utilizza) rimangono invariati. Ciò significa che il traffico viene trasmesso direttamente alle VM o ai pod di backend e il bilanciatore del carico non termina le connessioni. I servizi di backend gestiscono la chiusura delle connessioni e garantiscono che il traffico fluisca senza problemi dal client al servizio.
Bilanciamento del carico ponderato
Se hai configurato un servizio LoadBalancer esterno a cui possono accedere i client al di fuori della tua rete VPC e le VM, puoi attivare il bilanciamento del carico ponderato. Trusted Cloud Il bilanciamento del carico ponderato distribuisce il traffico in base al numero di pod di servizio su ogni nodo GKE, in modo che i nodi con più pod di servizio ricevano una percentuale maggiore di traffico rispetto ai nodi con meno pod.
NEG standalone
Un altro metodo per gestire i bilanciatori del carico in GKE consiste nel creare i componenti del bilanciatore del carico e lasciare che GKE gestisca i NEG. Questo tipo di bilanciatore del carico è chiamato bilanciatore del carico di rete proxy. I NEG sono un modo per rappresentare gruppi di endpoint di backend (ad esempio, pod) per il bilanciamento del carico.
Questo tipo di bilanciatore del carico è destinato solo al traffico TCP. I bilanciatori del carico di rete proxy distribuiscono il traffico TCP ai backend nella tua rete VPC o in altri ambienti cloud. Il traffico viene terminato al livello del bilanciamento del carico. Il bilanciatore del carico inoltra quindi il traffico stabilendo nuove connessioni TCP al backend disponibile più vicino.
Che cos'è il bilanciamento del carico nativo del container?
Il bilanciamento del carico nativo del container è la pratica di distribuire uniformemente il traffico
direttamente agli indirizzi IP dei singoli pod (anziché dei nodi) utilizzando i
NEG GCE_VM_IP_PORT
. I NEG ti consentono di specificare gli endpoint di backend utilizzando l'indirizzo IP interno principale di una macchina virtuale (VM) Compute Engine o un indirizzo IP di uno degli intervalli IP alias configurati della VM.GCE_VM_IP_PORT
Il bilanciamento del carico nativo del container viene utilizzato per tutti i bilanciatori del carico di livello 7 gestiti da GKE, inclusi Gateway e Ingress, e per i NEG standalone. I servizi LoadBalancer non utilizzano il bilanciamento del carico nativo del container. Tuttavia, puoi ottenere una funzionalità simile abilitando il bilanciamento del carico ponderato.
Il bilanciamento del carico nativo del container presenta diversi vantaggi, tra cui prestazioni di rete migliorate e controlli di integrità migliorati, perché ha come target direttamente i pod. Per ulteriori informazioni, vedi Bilanciamento del carico nativo dei container.
Tabelle riepilogative
Utilizza le seguenti tabelle per pianificare la configurazione del bilanciamento del carico.
Scegli un tipo di bilanciatore del carico
La seguente tabella mostra il tipo di bilanciatore del carico creato per una determinata risorsa (servizio Gateway, Ingress o LoadBalancer):
Risorsa Kubernetes | Tipo di bilanciatore del carico creato | |
---|---|---|
Bilanciatore del carico delle applicazioni | Bilanciatore del carico di rete passthrough | |
Gateway | ||
In entrata | ||
Servizio LoadBalancer |
Scegli un metodo per creare un bilanciatore del carico
La seguente tabella mostra le opzioni in GKE per creare il bilanciatore del carico che hai scelto:
Tipo di bilanciatore del carico | Metodi per creare il bilanciatore del carico scelto | |||
---|---|---|---|---|
Gateway | In entrata | Servizio LoadBalancer | NEG standalone | |
Bilanciatore del carico delle applicazioni esterno globale | ||||
Bilanciatore del carico delle applicazioni esterno classico | ||||
Bilanciatore del carico delle applicazioni esterno regionale | ||||
Bilanciatore del carico delle applicazioni interno regionale | ||||
Bilanciatore del carico delle applicazioni interno tra regioni | ||||
Bilanciatore del carico di rete proxy
(tutti i tipi) |
||||
Bilanciatore del carico di rete passthrough
(interno ed esterno) |
Passaggi successivi
- Scopri di più sull'API Gateway in GKE.
- Scopri di più su GKE Ingress.
- Scopri di più sui servizi LoadBalancer.