Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Precaución
La red SIG de Kubernetes y el Comité de respuesta a la seguridad anunciaron la próxima retirada del proyecto NGINX de entrada, con un mantenimiento que finaliza en marzo de 2026. Actualmente no es necesario tomar ninguna medida inmediata para los clústeres de AKS que utilizan el complemento de enrutamiento de aplicaciones con NGINX. Microsoft proporcionará soporte oficial para revisiones de seguridad críticas para los recursos de NGINX Ingress del complemento de enrutamiento de aplicaciones hasta noviembre de 2026.
AKS se alinea con Kubernetes ascendente al pasar a la API de puerta de enlace como estándar a largo plazo para la administración del tráfico de entrada y L7. Se recomienda empezar a planear la ruta de migración en función de la configuración actual:
- Usuarios del complemento de enrutamiento de aplicaciones: las cargas de trabajo de producción siguen siendo totalmente compatibles hasta noviembre de 2026. Migre a la implementación de la API de puerta de enlace de enrutamiento de aplicaciones para disfrutar de una experiencia de gestión del tráfico de entrada basada en la API de puerta de enlace.
-
Los usuarios de OSS NGINX tienen varias opciones:
- Migre al complemento de enrutamiento de aplicaciones con NGINX para beneficiarse del soporte técnico oficial hasta noviembre de 2026 mientras planifica su migración a largo plazo de la API Gateway.
- Migre a la implementación de la API de puerta de enlace de enrutamiento de aplicaciones para disfrutar de una experiencia de gestión del tráfico de entrada basada en la API de puerta de enlace.
- Migre a Application Gateway para contenedores, que admite tanto la API de Ingress como la API de puerta de enlace.
- Usuarios de malla de servicio: si tiene pensado adoptar una malla de servicio, considere el complemento de malla de servicio basado en Istio. Use Istio Ingress hoy y planifique migrar a la Gateway API de Istio, que ahora es GA.
Una manera de enrutar el tráfico de Protocolo de transferencia de hipertexto (HTTP) y seguro (HTTPS) a las aplicaciones que se ejecutan en un clúster de Azure Kubernetes Service (AKS) es usar el objeto de entrada de Kubernetes. Al habilitar el complemento de enrutamiento de aplicaciones con NGINX, crea, configura y administra un controlador de entrada en el clúster de AKS.
En este artículo se muestra cómo habilitar el controlador de entrada NGINX administrado y configurar un objeto de entrada para enrutar el tráfico a una aplicación del clúster de AKS.
Complemento de enrutamiento de aplicaciones con características de NGINX
El complemento de enrutamiento de aplicaciones con NGINX ofrece lo siguiente:
- 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 ver otras configuraciones, consulta:
- Configuración de DNS y SSL.
- Configuración del complemento de enrutamiento de aplicaciones.
- Configure el controlador de entrada de NGINX interno para Azure zona DNS privada.
Importante
A partir del 30 de septiembre de 2027, Azure Kubernetes Service (AKS) ya no admite el complemento Open Service Mesh (OSM). Se ha retirado el proyecto Open Service Mesh original.
Si el clúster usa el complemento de OSM, migre al complemento de Istio antes de la fecha de fin del soporte. Este aviso de retirada solo se aplica al complemento de OSM administrado y no aborda las instalaciones de malla de servicio de código abierto o autoadministrado. Para conocer los pasos de migración, consulte Guía de migración del complemento de OSM al complemento de Istio. Para mantenerse informado sobre los anuncios y actualizaciones de AKS, consulte las notas de versión de AKS.
Requisitos previos
- Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
- CLI de Azure versión 2.54.0 o posterior instalada y configurada. Ejecute
az --versionpara encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
Limitaciones
El complemento de enrutamiento de aplicaciones admite hasta cinco zonas DNS de Azure.
El complemento de enrutamiento de aplicaciones solo se puede habilitar en aquellos clústeres de AKS que tengan identidad administrada.
Todas las zonas globales de Azure DNS integradas con el complemento deben estar en el mismo grupo de recursos.
Todas las zonas DNS privadas de Azure integradas con el complemento deben estar en el mismo grupo de recursos.
No se permite editar ingress-nginx
ConfigMapen el espacio de nombresapp-routing-system.Si un valor de anotación de fragmento de código coincide con cualquiera de los siguientes valores bloqueados, la entrada no está configurada:
Valor bloqueado Effect load_moduleLa entrada no está configurada. lua_packageLa entrada no está configurada. _by_luaLa entrada no está configurada. locationLa entrada no está configurada. rootLa entrada no está configurada. proxy_passLa entrada no está configurada. serviceaccountLa entrada no está configurada. {La entrada no está configurada. }La entrada no está configurada. 'La entrada no está configurada. El complemento no admite oficialmente la inserción de sidecars no administrados Microsoft (por ejemplo, telemetría personalizada, registro o agentes de seguridad) en los pods proxy de entrada-nginx que administra. Si decide inyectar su propio sidecar en un pod proxy administrado, Microsoft solo ofrece soporte limitado para cualquier problema que encuentre.
Habilitación del complemento de enrutamiento de aplicaciones mediante CLI de Azure
Habilitación en un nuevo clúster
Para habilitar el enrutamiento de aplicaciones en un nuevo clúster, use el comando az aks create y especifique la marca --enable-app-routing.
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
Habilitación en un clúster ya existente
Para habilitar el enrutamiento de aplicaciones en un clúster existente, use el comando az aks approuting enable.
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
Conectarse al clúster AKS
Para conectarse al clúster de Kubernetes desde su equipo local, use kubectl, el cliente de la línea de comandos de Kubernetes. Puede realizar la instalación localmente mediante el comando az aks install-cli. Si usa Azure Cloud Shell, kubectl ya está instalado.
Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials.
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Implementar una aplicación
Los objetos de entrada de Kubernetes definen reglas de enrutamiento para un controlador de entrada. Use la clase de entrada administrada del complemento de enrutamiento de aplicaciones y las anotaciones admitidas para configurar cómo controla el tráfico su controlador.
Cree el espacio de nombres de la aplicación llamado
aks-storepara ejecutar los pods de ejemplo mediante el comandokubectl create namespace.kubectl create namespace aks-storeImplemente la aplicación de almacén de AKS mediante el siguiente archivo de manifiesto de YAML:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Este manifiesto crea rabbitmqlas implementaciones , order-service, product-servicey store-front los servicios correspondientes. El store-front servicio expone el puerto 80 al que la entrada se enruta en la sección siguiente.
Crear el objeto Ingress
Al habilitar el complemento de enrutamiento de aplicaciones, crea una clase de entrada denominada webapprouting.kubernetes.azure.com. Especifique esta clase en un objeto De entrada para usar el controlador de entrada NGINX administrado del complemento.
Copie el siguiente manifiesto YAML en un nuevo archivo denominado ingress.yaml y guarde el archivo en el equipo local.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixCree el recurso de entrada con el comando
kubectl apply.kubectl apply -f ingress.yaml -n aks-storeEn la siguiente salida de ejemplo se muestran los recursos creados:
ingress.networking.k8s.io/store-front created
Comprobación del recurso de entrada administrado
Compruebe que la entrada administrada se ha creado con el comando kubectl get ingress.
kubectl get ingress -n aks-store
En la siguiente salida de ejemplo se muestra la entrada administrada creada:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Puede comprobar que el almacén de AKS funciona apuntando el explorador a la dirección IP pública del controlador de entrada. El siguiente comando recupera la dirección IP externa asignada por el equilibrador de carga al servicio del nginx controlador de entrada NGINX administrado en el app-routing-system espacio de nombres:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Quitar el complemento de enrutamiento de aplicaciones
Para eliminar el espacio de nombres asociado, use el comando kubectl delete namespace.
kubectl delete namespace aks-store
Para eliminar el complemento enrutamiento de aplicaciones del clúster, use el comando az aks approuting disable.
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
Nota:
Para evitar posibles interrupciones del tráfico en el clúster al deshabilitar el complemento de enrutamiento de aplicaciones, algunos recursos de Kubernetes, incluidos configMaps, secretos y la implementación que ejecuta el controlador, permanecen en el clúster. Estos recursos se encuentran en el espacio de nombres app-routing-system. Puede quitar estos recursos si ya no los necesita eliminando el espacio de nombres con kubectl delete ns app-routing-system.
Contenido relacionado
- Habilite la implementación de la API de puerta de enlace de enrutamiento de aplicaciones para gestionar el tráfico de entrada con la API de puerta de enlace de Kubernetes.
- Configurar configuraciones de entrada personalizadas muestra cómo crear una configuración avanzada de entrada. Configure un dominio personalizado mediante Azure DNS para administrar zonas DNS y configurar una entrada segura.
- Para realizar la integración con un equilibrador de carga interno de Azure y configurar una zona DNS privada de Azure para habilitar la resolución DNS de los puntos de conexión privados para resolver dominios específicos, consulte Configuración del controlador de entrada NGINX interno para la zona DNS privada de Azure.
- Obtenga información sobre la supervisión de las métricas del controlador de entrada-nginx incluidas con el complemento de enrutamiento de aplicaciones con Prometheus en Grafana (versión preliminar) como parte del análisis del rendimiento y el uso de la aplicación.