Compartir a través de


Entrada en Azure Kubernetes Service (AKS)

La entrada en AKS es un recurso de Kubernetes que administra el acceso de tráfico externo similar a HTTP a servicios dentro de un clúster. Una entrada de AKS puede proporcionar servicios como equilibrio de carga, terminación SSL y hospedaje virtual basado en nombres. Para más información sobre la entrada de Kubernetes, consulte la documentación de entrada de Kubernetes.

Controladores de entrada

Al administrar el tráfico de aplicaciones, los controladores de entrada proporcionan funcionalidades avanzadas al trabajar en el nivel 7. Pueden enrutar el tráfico HTTP a diferentes aplicaciones en función de la dirección URL de entrada, lo que permite reglas de distribución de tráfico más inteligentes y flexibles. Por ejemplo, un controlador de entrada puede dirigir el tráfico a diferentes microservicios en función de la ruta de acceso de la dirección URL, lo que mejora la eficacia y la organización de los servicios.

Por otro lado, un servicio de tipo LoadBalancer, cuando se crea, configura un recurso subyacente del equilibrador de carga de Azure. Este equilibrador de carga funciona en el nivel 4 y distribuye el tráfico a los pods del servicio en un puerto especificado. Sin embargo, los servicios de nivel 4 no son conscientes de las aplicaciones reales y no pueden implementar estos tipos de reglas de enrutamiento complejas.

Comprender la distinción entre estos dos enfoques ayuda a seleccionar la herramienta adecuada para sus necesidades de administración del tráfico.

Diagrama que muestra el flujo de tráfico de entrada en un clúster de AKS

Comparación de las opciones de entrada

En la tabla siguiente se enumeran las diferencias de características entre las distintas opciones del controlador de entrada:

Característica Complemento de enrutamiento de aplicaciones Application Gateway para contenedores Malla de servicio de Azure/malla de servicio basada en Istio
Controlador de entrada/puerta de enlace Controlador de entrada NGINX Azure Application Gateway for Containers Puerta de enlace de entrada de Istio
API API de entrada API de entrada y API de puerta de enlace API de puerta de enlace
Hospedar aplicaciones de WPF En el clúster Hospedado en Azure En el clúster
Escalado Escalado automático Escalado automático Escalado automático
Equilibrio de carga Interno o externo Externos Interno o externo
Terminación de SSL En el clúster Sí: Descarga y SSL de E2E En el clúster
mTLS N/D Sí al back-end N/D
Dirección IP estática N/D FQDN N/D
Certificados SSL almacenados de Azure Key Vault N/D
Integración de Azure DNS para la administración de zonas DNS N/D

En la tabla siguiente se enumeran los distintos escenarios en los que puede usar cada controlador de entrada:

Opción de entrada Cuándo se deben usar
NGINX administrado: complemento de enrutamiento de aplicaciones • Controladores de entrada NGINX hospedados en clústeres, personalizables y escalables.
• Funcionalidades básicas de equilibrio de carga y enrutamiento.
• Configuración del equilibrador de carga interno y externo.
• Configuración de dirección IP pública.
• Integración con Azure Key Vault para la administración de certificados.
• Integración con zonas de Azure DNS para la administración de zonas públicas y privadas.
• Admite la API de entrada.
Puerta de enlace de aplicaciones para contenedores • Puerta de enlace de entrada hospedada en Azure.
• Estrategias de implementación flexibles administradas por el controlador o traiga su propia puerta de enlace de aplicaciones para contenedores.
• Características avanzadas de administración del tráfico, como reintentos automáticos, resistencia de zona de disponibilidad, autenticación mutua (mTLS) en el destino de back-end, división de tráfico/round robin ponderado y escalado automático.
• Integración con Azure Key Vault para la administración de certificados.
• Integración con zonas de Azure DNS para la administración de zonas públicas y privadas.
• Admite las API de entrada y puerta de enlace.
Puerta de enlace de entrada de Istio • Basado en Envoy, cuando se usa con Istio en una malla de servicio.
• Características avanzadas de administración del tráfico, como la limitación de velocidad y la interrupción del circuito.
• Compatibilidad con mTLS
• Admite la API de puerta de enlace.

Creación de un recurso de entrada

El complemento de enrutamiento de aplicaciones es la manera recomendada para configurar un controlador de entrada en AKS. El complemento de enrutamiento de aplicaciones es un controlador de entrada totalmente administrado para Azure Kubernetes Service (AKS) que proporciona las siguientes características:

  • Configuración sencilla de controladores de entrada NGINX administrados basados en controlador de entrada NGINX de Kubernetes.

  • Integración con Azure DNS para la administración de zonas públicas y privadas.

  • Terminación SSL con certificados almacenados en Azure Key Vault.

Para obtener más información sobre el complemento de enrutamiento de aplicaciones, consulte Entrada administrada de NGINX con el complemento de enrutamiento de aplicaciones.

Conservación de la dirección IP de origen de cliente

Configure el controlador de entrada para conservar la dirección IP de origen de cliente en las solicitudes a los contenedores en el clúster de AKS. Cuando el controlador de entrada enruta la solicitud de un cliente a un contenedor del clúster de AKS, la dirección IP de origen de la solicitud no está disponible para el contenedor de destino. Al habilitar la conservación de la dirección IP de origen de cliente, la dirección IP de origen para el cliente está disponible en el encabezado de solicitud en X-Forwarded-For.

Si usa la conservación de la dirección IP de origen de cliente en el controlador de entrada, no puede usar TLS de paso a través. La conservación de la dirección IP de origen de cliente y TLS de paso a través pueden usarse con otros servicios, como de tipo LoadBalancer.

Para más información sobre la conservación de la dirección IP de origen del cliente, consulte Funcionamiento de la conservación de la dirección IP de origen del cliente para los servicios LoadBalancer en AKS.