Che cos'è il Controller in ingresso del gateway applicazione?

Il controller in ingresso del gateway applicazione (AGIC) è un'applicazione Kubernetes che consente ai clienti del servizio Azure Kubernetes di sfruttare il bilanciamento del carico nativo L7 del gateway applicazione di Azure per esporre il software cloud a Internet. L'AGIC esegue il monitoraggio del cluster Kubernetes in cui è ospitato e aggiorna di continuo un gateway applicazione, consentendo così l'esposizione a Internet dei servizi selezionati.

Il controller in ingresso viene eseguito in uno specifico pod del servizio Azure Kubernetes del cliente. AGIC esegue il monitoraggio di un subset di risorse Kubernetes per rilevare eventuali modifiche. Lo stato del cluster del servizio Azure Kubernetes viene convertito in una configurazione specifica del gateway applicazione e applicato a Azure Resource Manager.

Vantaggi del controller in ingresso del gateway applicazione

L'AGIC consente di eliminare la necessità di avere un altro indirizzo IP pubblico o di bilanciamento del carico davanti al cluster del servizio Azure Kubernetes ed evitare più hop nel percorso dei dati prima che le richieste raggiungano il cluster del servizio Azure Kubernetes. Il gateway applicazione comunica con i pod direttamente tramite l'indirizzo IP privato e non richiede i servizi NodePort o KubeProxy. Questa funzionalità offre anche prestazioni migliori per le proprie distribuzioni.

Il controller di ingresso è supportato esclusivamente dagli SKU Standard_v2 e WAF_v2, che offrono anche i vantaggi della scalabilità automatica. Il gateway applicazione può reagire in risposta a un aumento o a una riduzione del carico del traffico e di conseguenza della scalabilità, senza usare risorse dal cluster del servizio Azure Kubernetes.

L'uso del gateway applicazione oltre all'AGIC consente anche di proteggere il cluster del servizio Azure Kubernetes fornendo funzionalità di Web application firewall (WAF) e criteri TLS.

Gateway applicazione di Azure + servizio Azure Kubernetes

L'AGIC viene configurato tramite la risorsa di ingresso di Kubernetes, insieme al servizio e alle distribuzioni o pods. Offre molte funzionalità con il servizio di bilanciamento del carico L7 del gateway applicazione nativo di Azure. Ecco alcuni esempi:

  • Routing basato su URL
  • Affinità basata sui cookie
  • Terminazione TLS
  • Archiviazione thread-local end-to-end
  • Supporto per siti Web pubblici, privati e ibridi
  • Web application firewall integrato

Differenza tra la distribuzione Helm e il componente aggiuntivo del servizio Azure Kubernetes

Esistono due modi per distribuire l'AGIC per il cluster del servizio Azure Kubernetes. Il primo modo è attraverso Helm, il secondo consiste nell'usare il servizio Azure Kubernetes come componente aggiuntivo. Il vantaggio principale della distribuzione dell'AGIC come componente aggiuntivo del servizio Azure Kubernetes è che è più semplice rispetto alla distribuzione tramite Helm. Per una nuova configurazione è possibile distribuire un nuovo gateway applicazione e un nuovo cluster del servizio Azure Kubernetes con l'AGIC abilitato come componente aggiuntivo in una nuova riga dell'interfaccia della riga di comando di Azure. Il componente aggiuntivo è anche un servizio completamente gestito, che offre vantaggi aggiuntivi, ad esempio aggiornamenti automatici e maggiore supporto. Entrambi i metodi di distribuzione dell'AGIC (Helm e il componente aggiuntivo per il servizio Azure Kubernetes) sono completamente supportati da Microsoft. Inoltre, il componente aggiuntivo consente una migliore integrazione con il servizio Azure Kubernetes, come componente aggiuntivo di prima classe.

Il componente aggiuntivo AGIC viene ancora distribuito come pod nel cluster del servizio Azure Kubernetes del cliente, ma esistono alcune differenze tra la versione di distribuzione Helm e la versione del componente aggiuntivo di AGIC. Di seguito è riportato un elenco delle differenze tra le due versioni:

  • I valori della distribuzione Helm non possono essere modificati nel componente aggiuntivo del servizio Azure Kubernetes:
    • Per impostazione predefinita, verbosityLevel è impostato su 5
    • usePrivateIp è impostato su False per impostazione predefinita; questa impostazione può essere sovrascritta dall'annotazione use-private-ip
    • shared non è supportato in nel componente aggiuntivo
    • reconcilePeriodSeconds non è supportato in nel componente aggiuntivo
    • armAuth.type non è supportato in nel componente aggiuntivo
  • L'AGIC distribuito tramite Helm supporta ProhibitedTargets, il che significa che tale controller può configurare il gateway applicazione specificamente per i cluster del servizio Azure Kubernetes, senza influire su altri back-end esistenti. Il componente aggiuntivo AGIC al momento non supporta questa funzionalità.
  • Poiché il componente aggiuntivo AGIC è un servizio gestito, i clienti vengono aggiornati automaticamente alla versione più recente di tale componente aggiuntivo, a differenza di AGIC distribuito tramite Helm in cui il cliente deve aggiornare manualmente il componente aggiuntivo.

Nota

I clienti possono distribuire un solo componente aggiuntivo AGIC per ogni cluster del servizio Azure Kubernetes e ogni componente aggiuntivo AGIC può al momento essere usato per un gateway applicazione. Per le distribuzioni che richiedono più controller AGIC per ciascun cluster o più controller AGIC per uno stesso gateway applicazione, è possibile continuare a usare l'AGIC tramite Helm.

Passaggi successivi