Ingress per i bilanciatori del carico delle applicazioni interni


Questa pagina spiega come funziona Ingress per gli Application Load Balancer interni in Google Kubernetes Engine (GKE). Scopri come configurare e utilizzare Ingress per 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 in modo nativo l'Application Load Balancer interno tramite la creazione di oggetti Ingress sui cluster GKE.

Per informazioni generali sull'utilizzo di Ingress per il bilanciamento del carico in per 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 fornisce i seguenti vantaggi:

  • Un controller Ingress gestito da GKE ad alta disponibilità.
  • Bilanciamento del carico per le comunicazioni interne 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à di 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à di traffico.

Supporto per le funzionalità di Google Cloud

Ingress per i bilanciatori del carico delle applicazioni interni supporta una serie di funzionalità aggiuntive.

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 rete. I proxy valutano la destinazione di ogni richiesta HTTP(S) in base a fattori quali la mappa di URL, l'affinità di sessione di BackendService e la modalità di bilanciamento di ogni NEG di backend.

L'Application Load Balancer interno di una regione utilizza la subnet solo proxy per quella regione nella 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 dall'intervallo di subnet del nodo assegnato da GKE anziché una subnet solo proxy. Puoi anche specificare manualmente un indirizzo IP per la regola di inoltro da qualsiasi subnet quando crei la regola.

Il seguente diagramma fornisce una panoramica del flusso di traffico per un del carico delle applicazioni interno, come descritto nel paragrafo precedente.

immagine

Ecco come funziona il bilanciatore del carico delle applicazioni interno:

  1. Un client stabilisce una connessione all'indirizzo IP e alla porta del bilanciatore del carico di una regola di forwarding.
  2. Un proxy riceve e termina la connessione di rete del client.
  3. Il proxy stabilisce una connessione con l'endpoint (pod) appropriato in un NEG, come stabilito dalla mappa URL del bilanciatore del carico e dai servizi di backend.

Ogni proxy rimane in ascolto sull'indirizzo IP e sulla porta specificati dal la regola di forwarding del bilanciatore del carico. Indirizzo IP di origine di ogni pacchetto inviato da un proxy a un endpoint è l'indirizzo IP interno assegnato al proxy dalla subnet solo proxy.

HTTPS (TLS) tra il bilanciatore del carico e l'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 carico proxy del bilanciatore del carico e del bilanciatore del carico. La connessione dal proxy del bilanciatore del carico a la tua applicazione utilizza HTTP per impostazione predefinita. Tuttavia, se la tua applicazione viene eseguita GKE e può ricevere richieste HTTPS, puoi configurare il bilanciatore del carico in modo che utilizzi HTTPS quando inoltra le richieste al tuo un'applicazione.

Per configurare il protocollo utilizzato tra il bilanciatore del carico e l'applicazione, utilizza l'annotazione cloud.google.com/app-protocols nel file 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 sceglie come target la porta 80 del servizio, Usare HTTPS quando ha come target la porta 443 del servizio.

Devi utilizzare il campo name della porta nell'annotazione. Non utilizzare un altro campo, 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