Ingress per i bilanciatori del carico delle applicazioni interni


Questa pagina spiega come funziona Ingress per i bilanciatori di 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 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 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 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à Compute Engine ad alta fedeltà 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 tua rete. I proxy valutano la destinazione di ogni richiesta HTTP(S) in base a fattori quali la mappa di URL, l'affinità 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 per 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 proviene dall'intervallo della 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.

immagine

Ecco come funziona il bilanciatore del carico delle applicazioni interno:

  1. Un client effettua una connessione all'indirizzo IP e alla porta della regola di forwarding del bilanciatore del carico.
  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 ascolta l'indirizzo IP e la porta specificati dalla regola di forwarding del bilanciatore del carico corrispondente. L'indirizzo IP sorgente 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 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 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 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 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