Ingresso nel servizio Azure Kubernetes

L'ingresso nel servizio Azure Kubernetes è una risorsa Kubernetes che gestisce l'accesso al traffico esterno di tipo HTTP ai servizi all'interno di un cluster. Un ingresso del servizio Azure Kubernetes può fornire servizi come bilanciamento del carico, terminazione SSL e hosting virtuale basato sul nome. Per altre informazioni sull'ingresso Kubernetes, vedere la documentazione di ingresso di Kubernetes.

Controller in ingresso

Quando si gestisce il traffico dell'applicazione, i controller in ingresso offrono funzionalità avanzate operando al livello 7. Possono instradare il traffico HTTP ad applicazioni diverse in base all'URL in ingresso, consentendo regole di distribuzione del traffico più intelligenti e flessibili. Ad esempio, un controller in ingresso può indirizzare il traffico a microservizi diversi a seconda del percorso URL, migliorando l'efficienza e l'organizzazione dei servizi.

D'altra parte, un servizio di tipo LoadBalancer, quando creato, configura una risorsa di bilanciamento del carico di Azure sottostante. Questo servizio di bilanciamento del carico funziona al livello 4, distribuendo il traffico ai pod nel servizio su una porta specificata. Tuttavia, i servizi di livello 4 non sono a conoscenza delle applicazioni effettive e non possono implementare questi tipi di regole di routing complesse.

Comprendere la distinzione tra questi due approcci consente di selezionare lo strumento appropriato per le esigenze di gestione del traffico.

Diagramma che mostra il flusso del traffico in ingresso in un cluster del servizio Azure Kubernetes

Confrontare le opzioni di ingresso

Nella tabella seguente sono elencate le differenze tra le diverse opzioni del controller in ingresso:

Funzionalità Componente aggiuntivo Instradamento dell'applicazione Gateway applicazione per contenitori Mesh di servizi di Azure/mesh di servizi basato su Istio
Controller in ingresso/gateway Controller di ingresso NGINX Gateway applicazione di Azure per contenitori Gateway in ingresso Istio
API API in ingresso API in ingresso e API gateway Istio Ingress API
Hosting Nel cluster Ospitato in Azure Nel cluster
Ridimensionamento Scalabilità automatica Scalabilità automatica Scalabilità automatica
Bilanciamento del carico Esterno o interno Esterno Esterno o interno
Terminazione SSL Nel cluster Sì: offload e SSL E2E Nel cluster
mTLS N/D Sì al back-end N/D
Indirizzo IP statico N/D FQDN N/D
Certificati SSL archiviati in Azure Key Vault N/D
Integrazione DNS di Azure per la gestione della zona DNS N/D

La tabella seguente elenca i diversi scenari in cui è possibile usare ogni controller di ingresso:

Opzione in ingresso Utilizzo di
NGINX gestito - componente aggiuntivo per l'instradamento dell'applicazione • Controller in ingresso NGINX ospitati, personalizzabili e scalabili.
• Funzionalità di bilanciamento del carico e routing di base.
• Configurazione del servizio di bilanciamento del carico interno ed esterno.
• Configurazione dell'indirizzo IP statico.
• Integrazione con Azure Key Vault per la gestione dei certificati.
• Integrazione con zone DNS di Azure per la gestione di DND pubblico e privato.
• Supporta l'API in ingresso.
Gateway applicativo per contenitori • Gateway in ingresso ospitato in Azure.
• Strategie di distribuzione flessibili gestite dal controller o dal Gateway applicativo per contenitori Bring Your Own.
• Funzionalità avanzate di gestione del traffico, ad esempio tentativi automatici, resilienza della zona di disponibilità, autenticazione reciproca (mTLS) alla destinazione back-end, suddivisione del traffico/round robin ponderato e scalabilità automatica.
• Integrazione con Azure Key Vault per la gestione dei certificati.
• Integrazione con zone DNS di Azure per la gestione di DND pubblico e privato.
• Supporto dell'API gateway e in ingresso.
Gateway in ingresso Istio • In base a Envoy, quando si usa con Istio per una mesh di servizi.
• Funzionalità avanzate di gestione del traffico, ad esempio la limitazione della frequenza e l'interruzione del circuito.
• Supporto per mTLS

Nota

L'API gateway per il traffico in ingresso Istio non è ancora supportata per il componente aggiuntivo Istio, ma è attualmente in fase di sviluppo attivo.

Creare una risorsa in ingresso

Il componente aggiuntivo di routing dell'applicazione è il modo consigliato per configurare un controller di ingresso nel servizio Azure Kubernetes. Il componente aggiuntivo di routing dell'applicazione è un controller in ingresso completamente gestito per il servizio Azure Kubernetes che fornisce le funzionalità seguenti:

  • Configurazione semplice dei controller di ingresso NGINX gestiti basati sul controller di ingresso NGINX di Kubernetes.

  • Integrazione con DNS di Azure per la gestione delle zone pubbliche e private.

  • Terminazione SSL con certificati archiviati in Azure Key Vault.

Per altre informazioni sul componente aggiuntivo di routing dell'applicazione, vedere Ingresso NGINX gestito con il componente aggiuntivo di routing dell'applicazione.

Conservazione IP di origine client

Configurare il controller di ingresso per mantenere l'indirizzo IP di origine client nelle richieste ai contenitori nel cluster del servizio Azure Kubernetes. Quando il controller di ingresso instrada la richiesta di un client a un contenitore nel cluster AKS, l'IP di origine della richiesta non è disponibile per il contenitore di destinazione. Quando si abilita la conservazione dell’IP di origine client, l’IP di origine per il client è disponibile nell'intestazione della richiesta in X-Forwarded-For.

Se si usa la conservazione dell’IP di origine client nel controller di ingresso, non è possibile usare il pass-through TLS. La conservazione dell’IP di origine client e il pass-through TLS possono essere usati con altri servizi, ad esempio il tipo LoadBalancer.

Per altre informazioni sulla conservazione degli indirizzi IP di origine client, vedere Funzionamento della conservazione ip di origine client per i servizi LoadBalancer nel servizio Azure Kubernetes.