Kubernetes Ingress Playlist Parte 3 Routing en NGINX Ingress Controller: en esta entrega explicamos de forma práctica cómo funciona el enrutamiento con el controlador NGINX Ingress usando dos aplicaciones Nodejs sencillas llamadas simple-nodejs-app-1 y simple-nodejs-app-2 y mostramos los patrones de enrutamiento más útiles para entornos de producción.
Introducción: Ingress es el recurso de Kubernetes que permite exponer servicios HTTP y HTTPS fuera del clúster. El controlador NGINX actúa como un proxy inverso inteligente en el borde del clúster, inspeccionando las peticiones entrantes y encaminándolas a los servicios de backend según reglas basadas en host cabecera path cabeceras o condiciones personalizadas. Con NGINX Ingress se centraliza el acceso a múltiples aplicaciones bajo una sola IP o balanceador de carga y se habilitan capacidades como terminación TLS despliegues canary autenticación y políticas avanzadas de tráfico.
Despliegue inicial: primero desplegamos las dos aplicaciones en despliegues separados cada una con su servicio correspondiente. Los manifiestos de despliegue se pueden aplicar con kubectl apply -f seguido de las URLs de ejemplo en el repositorio del proyecto. service-nodejs-app-1 escucha en targetPort 8080 y service-nodejs-app-2 en targetPort 8081. Comprobar los servicios y pods permite verificar que ambas aplicaciones están listas y accesibles desde el Ingress.
1 Enrutamiento básico: en el enrutamiento básico todas las peticiones HTTP entrantes se dirigen a un único servicio backend. Este patrón es ideal cuando el clúster aloja una sola aplicación o cuando se desea un frontend común para todos los usuarios. Crear un recurso Ingress sencillo apuntando el path raiz al servicio service-nodejs-app-1 y aplicar el manifiesto con kubectl apply -f nginx-ingress-basic-routing.yaml permite exponer la aplicación a través del DNS del balanceador de carga.
2 Enrutamiento por path: el enrutamiento basado en ruta permite enviar tráfico a diferentes servicios según el path de la URL. Por ejemplo las rutas /app1 y /app2 pueden mapearse a service-nodejs-app-1 y service-nodejs-app-2 respectivamente. Esto es especialmente útil en arquitecturas de microservicios para compartir un único dominio y separar responsabilidades por path. Aplicar un manifiesto tipo nginx-ingress-path-based-routing.yaml y configurar registros A en DNS como Route 53 hacia el NLB permite probar http chinmayto.com slash app1 y http chinmayto.com slash app2.
3 Enrutamiento por host: la toma de decisiones de enrutamiento puede basarse en la cabecera Host permitiendo servir múltiples aplicaciones bajo diferentes dominios o subdominios. Por ejemplo app1.chinmayto.com y app2.chinmayto.com pueden mapearse a servicios distintos. Este patrón facilita la multi tenancy y el aislamiento por dominio mientras se utiliza un único controlador Ingress. Para ponerlo en marcha se crea un nginx-ingress-host-based-routing.yaml y se añaden registros A para los subdominios apuntando al NLB.
4 Enrutamiento wildcard: las reglas con comodines permiten coincidir múltiples subdominios bajo un dominio base con patrones tipo estrella por ejemplo anything.chinmayto.com. Es ideal cuando las subdominios se generan dinámicamente para usuarios dashboards u otros servicios y no se quiere declarar cada subdominio individualmente. Configurar un Ingress con host *.chinmayto.com y el registro DNS wildcard en Route 53 simplifica la gestión de subdominios.
5 Enrutamiento con expresiones regulares: usar regex en las rutas ofrece capacidades de coincidencia más potentes para estructuras de URL complejas o variables. Habilitando la opción use regex en las anotaciones y utilizando pathType ImplementationSpecific se pueden definir patrones como slash app1 paren barra o fin paren punto punto que enrutan a backends según reglas avanzadas. Este enfoque permite manejar rutas dinámicas pero requiere escribir las expresiones con cuidado y probar exhaustivamente.
6 Enrutamiento canary: el enrutamiento canary facilita la entrega progresiva enviando un porcentaje del tráfico a una versión canaria de la aplicación mientras el resto continúa en la versión estable. Por ejemplo con una anotación de canary weight al 20 por ciento se redirige una parte del tráfico a service-nodejs-app-2 mientras la estable sigue en service-nodejs-app-1. Esta técnica es clave para despliegues seguros A B testing y mitigación de riesgos en producción.
Buenas prácticas y DNS: en ejemplos reales con AWS EKS el NGINX Ingress Controller suele exponerse a través de un Network Load Balancer NLB y la resolución DNS se configura con registros A en Route 53 apuntando al NLB. Para TLS es recomendable gestionar certificados mediante cert manager o ACM según la plataforma cloud. Monitorización logs y health checks son esenciales para mantener la resiliencia y detectar regresiones en despliegues canary o cambios de rutas.
Acerca de Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software aplicaciones a medida y software a medida especializada en soluciones empresariales que integran inteligencia artificial y ciberseguridad. Ofrecemos servicios cloud aws y azure servicios inteligencia de negocio y soluciones con power bi para transformar datos en decisiones. Nuestro equipo diseña agentes IA e implementa ia para empresas que necesitan automatizar procesos optimizar operaciones y mejorar la experiencia de usuario. También proporcionamos consultoría en ciberseguridad para proteger infraestructuras y aplicaciones y desarrollamos aplicaciones a medida con enfoque en escalabilidad rendimiento y buenas prácticas de DevOps.
Servicios que podemos aportar en tus proyectos: diseño e implementación de Ingress y balanceo avanzado en Kubernetes despliegues en EKS o AKS configuración de TLS y certificados integración de pipelines CI CD migración a servicios cloud aws y azure desarrollo de software a medida desarrollo de soluciones de inteligencia artificial y agentes IA integración de Power BI y servicios inteligencia de negocio auditorías y hardening en ciberseguridad y soporte operativo para entornos productivos.
Conclusión: dominar las capacidades de enrutamiento del NGINX Ingress Controller permite construir plataformas Kubernetes seguras y flexibles que soportan desde aplicaciones monolíticas hasta arquitecturas microservicios multi dominio y despliegues avanzados como canary. Si necesitas ayuda para diseñar implementar o mantener estas soluciones Q2BSTUDIO puede acompañarte con experiencia práctica en aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio agentes IA y power bi.
Recursos: para ejemplos y manifiestos completos consulta el repositorio del proyecto en GitHub y si quieres iniciar una colaboración con Q2BSTUDIO contacta con nuestro equipo para una consultoría sobre arquitectura despliegues y estrategias de entrega continua.