Questa pagina fornisce una panoramica generale di come Google Kubernetes Engine (GKE) crea e gestisce Cloud Load Balancing. Questa pagina presuppone che tu conosca le seguenti informazioni:
- Tipi di Cloud de Confiance by S3NS bilanciatori del carico
- 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 propria organizzazione. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Cloud de Confiance contenuti, vedi Ruoli e attività utente comuni di GKE Enterprise.
Come GKE crea i bilanciatori del carico
Per rendere le applicazioni accessibili dall'esterno del cluster (utenti esterni) o all'interno della rete privata (utenti interni), puoi esporle eseguendo il provisioning dei bilanciatori del carico utilizzando le API Gateway, Ingress e Service. In alternativa, puoi creare tu stesso i componenti del bilanciatore del carico, mentre GKE gestisce i gruppi di endpoint di rete (NEG) che collegano il bilanciatore del carico ai pod nel cluster.
Gateway
Il controller Gateway di GKE è l'implementazione di Google dell'API Kubernetes Gateway per Cloud Load Balancing. L'API Gateway è un progetto open source che mira a standardizzare il modo in cui i mesh di servizi e i controller Ingress espongono le applicazioni in Kubernetes. L'API Gateway è progettata per essere un successore più espressivo, flessibile ed estensibile della risorsa Ingress.
Il controller Gateway di GKE viene utilizzato per configurare i bilanciatori del carico delle applicazioni di livello 7 in modo da 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 di GKE è l'implementazione di Google dell'API Ingress. L'API Ingress consente di gestire l'accesso esterno ai servizi in esecuzione 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.
Il gateway GKE è la scelta consigliata per i nuovi deployment e le applicazioni che richiedono la gestione avanzata del traffico, il 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 consente di
esporre il traffico esterno o interno alle applicazioni in esecuzione come pod nel cluster. 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 (ad esempio 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 terminazione 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 esterni alla rete VPC e le Cloud de Confiance VM, puoi abilitare il bilanciamento del carico ponderato. Il bilanciamento del carico ponderato distribuisce il traffico in base al numero di pod di pubblicazione su ogni nodo GKE, in modo che i nodi con più pod di pubblicazione 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 tu stesso 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 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 GCE_VM_IP_PORT consentono di specificare gli endpoint di backend utilizzando l'indirizzo IP interno principale di una macchina virtuale (VM) Compute Engine o un indirizzo IP da uno degli intervalli IP alias configurati della VM.
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 offre diversi vantaggi, tra cui prestazioni di rete e controlli di integrità migliorati, perché è destinato direttamente ai pod. Per ulteriori informazioni, vedi Bilanciamento del carico nativo del container.
Tabelle di riepilogo
Utilizza le tabelle seguenti per pianificare la configurazione del bilanciamento del carico.
Scegliere un tipo di bilanciatore del carico
La tabella seguente mostra il tipo di bilanciatore del carico creato per una determinata risorsa (Gateway, Ingress o servizio 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 | ||
Scegliere un metodo per creare un bilanciatore del carico
La tabella seguente mostra le opzioni in GKE per creare il bilanciatore del carico 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.