¿Qué es el controlador de entrada de Application Gateway?

El controlador de entrada de Application Gateway (AGIC) es una aplicación de Kubernetes, lo que hace posible que los clientes de Azure Kubernetes Service (AKS) aprovechen la tecnología nativa de Azure Application Gateway: el equilibrador de carga L7 para exponer software en la nube a Internet. AGIC supervisa el clúster de Kubernetes en el que se hospeda y actualiza continuamente una instancia de Application Gateway para que los servicios seleccionados se expongan a Internet.

El controlador de entrada se ejecuta en su propio pod en la instancia de AKS del cliente. AGIC supervisa un subconjunto de recursos de Kubernetes para los cambios. El estado del clúster de AKS se traduce a una configuración específica de Application Gateway y se aplica a Azure Resource Manager (ARM).

Ventajas del controlador de entrada de Application Gateway

AGIC ayuda a eliminar la necesidad de tener otra dirección IP pública o equilibrador de carga frente al clúster de AKS y evita varios saltos en la ruta de datos antes de que las solicitudes lleguen al clúster de AKS. Application Gateway se comunica con los pods mediante su dirección IP privada directamente y no necesita los servicios de NodePort o KubeProxy. Esta capacidad también aporta un mejor rendimiento a las implementaciones.

El controlador de entrada es compatible exclusivamente con las SKU de Standard_v2 y WAF_v2, que también habilitan ventajas de escalado automático. Application Gateway puede reaccionar en respuesta a un aumento o una disminución de la carga y la escala de tráfico según corresponda, sin consumir ningún recurso del clúster de AKS.

El uso de Application Gateway, además de AGIC, también ayuda a proteger el clúster de AKS al proporcionar la funcionalidad de la directiva TLS y firewall de aplicaciones web (WAF).

Azure Application Gateway + AKS

AGIC se configura a través del recurso de entrada de Kubernetes, junto con los servicios, las implementaciones y los pods. Proporciona muchas características mediante el equilibrador de carga L7 de Application Gateway nativo de Azure. Por mencionar algunas:

  • Enrutamiento de direcciones URL
  • Afinidad basada en cookies
  • Finalización de TLS
  • TLS de un extremo a otro
  • Soporte para sitios web públicos, privados e híbridos
  • Firewall de aplicaciones web integrado

Diferencias entre la implementación de Helm y el complemento de AKS

Hay dos maneras de implementar AGIC para el clúster de AKS. La primera manera es mediante Helm; la segunda es mediante AKS como un complemento. La principal ventaja de implementar AGIC como un complemento de AKS es que es más sencillo que la implementación mediante Helm. En el caso de una nueva instalación, puede implementar una nueva instancia de Application Gateway y un nuevo clúster de AKS con AGIC habilitado como un complemento en una línea en la CLI de Azure. El complemento es también un servicio totalmente administrado, que ofrece ventajas adicionales, como actualizaciones automáticas y mayor compatibilidad. Las dos formas de implementar AGIC (Helm y el complemento de AKS) son totalmente compatibles con Microsoft. Además, el complemento permite una mejor integración con AKS como un complemento de primera clase.

El complemento de AGIC se implementa como un pod en el clúster de AKS del cliente; sin embargo, hay algunas diferencias entre la versión de la implementación de Helm y la versión del complemento de AGIC. A continuación se muestra una lista de las diferencias entre las dos versiones:

  • Los valores de implementación de Helm no se pueden modificar en el complemento de AKS:
    • verbosityLevel se establece en 5 de forma predeterminada;
    • usePrivateIp se establece en False de forma predeterminada (esta configuración se puede invalidar con la anotación use-private-ip);
    • shared no se admite en el complemento
    • reconcilePeriodSeconds no se admite en el complemento
    • armAuth.type no se admite en el complemento
  • AGIC implementado mediante Helm admite ProhibitedTargets, lo que significa que AGIC puede configurar la instancia de Application Gateway específicamente para los clústeres de AKS sin que afecte a otros back-ends existentes. El complemento de AGIC no es compatible actualmente con esta capacidad.
  • Dado que el complemento de AGIC es un servicio administrado, los clientes se actualizan automáticamente a la versión más reciente del complemento de AGIC, a diferencia de AGIC implementado mediante Helm, donde el cliente debe actualizar AGIC manualmente.

Nota:

Los clientes solo pueden implementar un complemento de AGIC por clúster de AKS y cada complemento de AGIC actualmente solo puede tener como destino una instancia de Application Gateway. En el caso de implementaciones que necesiten más de un AGIC por clúster o varios AGIC destinados a una instancia de Application Gateway, siga usando AGIC implementado mediante Helm.

Pasos siguientes