Questa pagina spiega come funziona Ingress per i bilanciatori del carico delle applicazioni interni in Google Kubernetes Engine (GKE). Puoi anche scoprire come configurare e utilizzare Ingress per i bilanciatori del carico delle applicazioni interni.
In GKE, il bilanciatore del carico delle applicazioni interno è un bilanciatore del carico di livello 7 regionale e basato su proxy che ti consente di eseguire e scalare i servizi dietro un indirizzo IP di bilanciamento del carico interno. Gli oggetti GKE Ingress supportano il bilanciatore del carico delle applicazioni interno in modo nativo tramite la creazione di oggetti Ingress sui cluster GKE.
Per informazioni generali sull'utilizzo di Ingress per il bilanciamento del carico in GKE, consulta Bilanciamento del carico HTTP(S) con Ingress.
Vantaggi dell'utilizzo di Ingress per i bilanciatori del carico delle applicazioni interni
L'utilizzo di GKE Ingress per i bilanciatori del carico delle applicazioni interni offre i seguenti vantaggi:
- Un controller Ingress gestito da GKE ad alta disponibilità.
- Bilanciamento del carico per la comunicazione interna tra servizi.
- Bilanciamento del carico nativo del container con gruppi di endpoint di rete (NEG).
- Routing delle applicazioni con supporto HTTP e HTTPS.
- Controlli di integrità Compute Engine ad alta precisione per servizi resilienti.
- Proxy basati su Envoy di cui viene eseguito il deployment on demand per soddisfare le esigenze di capacità del traffico.
Supporto per le funzionalità Google Cloud
Ingress per i bilanciatori del carico delle applicazioni interni supporta una serie di funzionalità aggiuntive.
- Certificati SSL autogestiti utilizzando Google Cloud. Per questa funzionalità sono supportati solo i certificati regionali.
- Certificati SSL autogestiti che utilizzano i secret di Kubernetes.
- Le funzionalità Affinità sessione e Timeout connessione di BackendService. Puoi configurare queste funzionalità utilizzando BackendConfig.
Ambiente di rete richiesto per i bilanciatori del carico delle applicazioni interni
Il bilanciatore del carico delle applicazioni interno fornisce un pool di proxy per la tua rete. I proxy valutano la destinazione di ogni richiesta HTTP(S) in base a fattori quali la mappa URL, l'affinità sessione di BackendService e la modalità di bilanciamento di ogni NEG di backend.
Un bilanciatore del carico delle applicazioni interno di una regione utilizza la subnet solo proxy per quella regione nella tua rete VPC per assegnare indirizzi IP interni a ogni proxy creato da Google Cloud.
Per impostazione predefinita, l'indirizzo IP assegnato alla regola di forwarding di un bilanciatore del carico proviene dall'intervallo di subnet del nodo assegnato da GKE anziché dalla subnet solo proxy. Puoi anche specificare manualmente un indirizzo IP per la regola di forwarding da qualsiasi subnet quando crei la regola.
Il seguente diagramma fornisce una panoramica del flusso di traffico per un bilanciatore del carico delle applicazioni interno, come descritto nel paragrafo precedente.
Ecco come funziona il bilanciatore del carico delle applicazioni interno:
- Un client stabilisce una connessione all'indirizzo IP e alla porta della regola di forwarding del bilanciatore del carico.
- Un proxy riceve e termina la connessione di rete del client.
- Il proxy stabilisce una connessione all'endpoint (pod) appropriato in un NEG, come determinato dalla mappa URL e dai servizi di backend del bilanciatore del carico.
Ogni proxy è in ascolto sull'indirizzo IP e sulla porta specificati dalla regola di forwarding del bilanciatore del carico corrispondente. L'indirizzo IP di origine di ogni pacchetto inviato da un proxy a un endpoint è l'indirizzo IP interno assegnato a quel proxy dalla subnet solo proxy.
HTTPS (TLS) tra il bilanciatore del carico e la tua applicazione
Un bilanciatore del carico delle applicazioni interno funge da proxy tra i client e l'applicazione. I client possono utilizzare HTTP o HTTPS per comunicare con il proxy del bilanciatore del carico. La connessione dal proxy del bilanciatore del carico alla tua applicazione utilizza HTTP per impostazione predefinita. Tuttavia, se la tua applicazione viene eseguita in un pod GKE e può ricevere richieste HTTPS, puoi configurare il bilanciatore del carico in modo che utilizzi HTTPS quando inoltra le richieste alla tua applicazione.
Per configurare il protocollo utilizzato tra il bilanciatore del carico e l'applicazione, utilizza l'annotazione cloud.google.com/app-protocols
nel manifest del servizio.
Il seguente manifest del servizio specifica due porte. L'annotazione specifica che un bilanciatore del carico delle applicazioni interno deve utilizzare HTTP quando ha come target la porta 80 del servizio e HTTPS quando ha come target la porta 443 del servizio.
Devi utilizzare il campo name
della porta nell'annotazione. Non utilizzare un campo diverso, ad esempio targetPort
.
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
cloud.google.com/app-protocols: '{"my-https-port":"HTTPS","my-http-port":"HTTP"}'
spec:
type: NodePort
selector:
app: metrics
department: sales
ports:
- name: my-https-port
port: 443
targetPort: 8443
- name: my-http-port
port: 80
targetPort: 50001
Passaggi successivi
- Scopri come eseguire il deployment di una subnet solo proxy.
- Scopri di più su Ingress per i bilanciatori del carico delle applicazioni esterni.
- Scopri come configurare Ingress per i bilanciatori del carico delle applicazioni interni.
- Leggi una panoramica del networking in GKE.