Un controlador Ingress de Kubernetes es un componente de software especializado que gestiona el tráfico entrante a las aplicaciones que se ejecutan en entornos de Kubernetes sirviendo como puente entre los usuarios externos y los servicios contenerizados.
Las compañías modernas dependen en gran medida de aplicaciones distribuidas y cargas de trabajo creadas a partir de docenas o cientos de microservicios. Sin una orquestación adecuada del tráfico, cada servicio requeriría su propio endpoint público, lo que plantearía importantes problemas de gestión y seguridad.
Por ejemplo, una plataforma de atención médica podría necesitar puntos de acceso separados para portales de pacientes, paneles de proveedores, sistemas de facturación e informes de cumplimiento de normas, un enfoque que se vuelve costoso y operacionalmente complejo.
Un controlador Ingress de Kubernetes aborda este problema sirviendo como equilibrador de carga y enrutador de tráfico inteligente en el punto de entrada de la aplicación. Establece una ruta de tráfico centralizada para que los usuarios externos accedan a los servicios internos.
El ecosistema de Kubernetes ofrece varios controladores Ingress, incluidas herramientas de código abierto (por ejemplo, NGINX, Traefik) disponibles en plataformas como GitHub y soluciones patentadas diseñadas para satisfacer necesidades organizacionales específicas.
Boletín de la industria
Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
Desarrollado inicialmente por Google y donado a Cloud Native Computing Foundation (CNCF) en 2015, Kubernetes ahora impulsa la infraestructura de TI esencial para la mayoría de las empresas de Fortune 500, lo que hace que la gestión del controlador Ingress sea crítica para las operaciones empresariales. Según una encuesta de 2022, el 96% de las organizaciones emplean Kubernetes o están evaluando esta tecnología para entornos de producción.1
Antes de Kubernetes, las aplicaciones generalmente se ejecutaban en servidores dedicados o máquinas virtuales (VM), lo que hacía que el escalado fuera costoso y lento. Kubernetes introdujo contenedores: unidades livianas y portátiles que empaquetan aplicaciones con todas sus dependencias.
Kubernetes revolucionó los flujos de trabajo de DevOps y el despliegue de aplicaciones al introducir la orquestación de contenedores a escala. Esta plataforma de código abierto automatiza el despliegue, el escalado y la gestión de aplicaciones en contenedores en toda la infraestructura distribuida, lo que permite una colaboración fluida entre los equipos de desarrollo y operaciones.
Kubernetes organiza las aplicaciones en pods, las unidades desplegables más pequeñas compuestas por uno o más contenedores (normalmente contenedores Docker ). Estos pods se ejecutan en nodos dentro de clúster, mientras que un plano de control coordina todas las operaciones de clúster. Los servicios proporcionan identidades de red estables para grupos de pods, lo que permite patrones de comunicación confiables.
Los controladores Ingress suelen desplegarse como pods especializados que monitorean el estado del clúster a través de la API de Kubernetes . Estos controladores rastrean los cambios en los recursos de Ingress (objetos de configuración que definen las reglas de enrutamiento del tráfico) y actualizan de forma automática sus tablas de enrutamiento para reflejar los nuevos despliegues de aplicaciones o las actualizaciones de configuración.
Para comprender cómo funcionan los controladores Ingress, es esencial comprender Kubernetes Ingress, el recurso API (u objeto Ingress) que define las reglas de enrutamiento que dirigen el tráfico externo a los servicios dentro de un clúster de Kubernetes.
Kubernetes Ingress es distinto del término general ingress, que se refiere al flujo del tráfico de red entrante en un entorno de aplicaciones en contenedores nativo de la nube . En Kubernetes, Ingress se refiere específicamente al conjunto de reglas y configuraciones que gestionan cómo se enruta el tráfico entrante a diferentes servicios. Por el contrario, la entrada en un sentido más amplio simplemente se refiere a cualquier tráfico que ingresa a un sistema (a diferencia de la salida, que se refiere al tráfico que fluye fuera del sistema).
Lea más sobre ingress versus egress en Kubernetes.
Kubernetes Ingress proporciona un enfoque declarativo para gestionar el acceso externo a los servicios dentro de un clúster. En lugar de exponer servicios individuales (por ejemplo, NodePort, servicios LoadBalancer) directamente a Internet, Ingress crea una capa de acceso controlado que enruta de forma inteligente las solicitudes en función de múltiples criterios. Esta capacidad permite la gestión eficiente del tráfico externo a los servicios, normalmente expuestos mediante el uso de ClusterIP dentro del clúster Kubernetes.
Kubernetes Ingress opera a través de dos componentes complementarios.
Los recursos de Ingress (también denominados recursos Kubernetes u objetos API Kubernetes) definen las reglas de enrutamiento. Se definen en YAML o JSON, especificando reglas de Ingress, certificados SSL, requisitos de autenticación y políticas de tráfico.
Por ejemplo, los usuarios pueden usar el campo ingressClassName para determinar qué controlador Ingress debe gestionar el recurso, lo que permite la dirección del tráfico a un controlador específico cuando existen varios controladores en un clúster.
Los controladores Ingress o son componentes de software que leen y aplican reglas de configuración, actuando como proxies inversos con capacidades avanzadas de administración de tráfico.
Los balanceadores de carga de capa 4 tradicionales, como aquellos para rutas TCP, UDP y HTTP/HTTPS, distribuyen el tráfico basado únicamente en direcciones IP y puertos. Por el contrario, un controlador Ingress de Kubernetes funciona en la capa 7 (la capa de aplicación), lo que permite un enrutamiento más sofisticado.
Al aprovechar la API de Kubernetes Ingress y características como HTTPRoute, el controlador Ingress toma decisiones de enrutamiento basadas en atributos detallados específicos de HTTP, como:
Estas decisiones se basan en reglas de configuración que dictan las políticas de enrutamiento y otros requisitos. Los controladores Ingress monitorean continuamente los cambios en estas configuraciones, actualizando automáticamente el comportamiento del enrutamiento sin intervención manual, lo que garantiza una distribución del tráfico y una gestión de la seguridad sin problemas.
Los clústeres de Kubernetes pueden ejecutar varios controladores Ingress simultáneamente, cada uno de los cuales maneja diferentes tipos de tráfico o aplicaciones. Cada controlador opera de manera basada en eventos, respondiendo a los cambios en los recursos de Ingress mediante la lectura de especificaciones, anotaciones y metadatos, y luego convirtiéndolos en instrucciones de enrutamiento ejecutables.
Los controladores Ingress de Kubernetes examinan las solicitudes entrantes y toman decisiones de enrutamiento basadas en reglas predefinidas, como nombres de host y nombres DNS . Manejan el tráfico HTTP y HTTPS, realizan la terminación SSL y toman decisiones inteligentes de equilibrio de carga en múltiples instancias de servicio.
Los controladores Ingress de Kubernetes monitorear continuamente la API de Kubernetes para detectar cambios en los recursos de Ingress en los espacios de nombres. Ya sea que estos cambios se apliquen a través de kubectl, canalizaciones de CI/CD u otras herramientas (por ejemplo, Helm, Terraform), el controlador actualiza automáticamente las reglas de enrutamiento sin intervención manual ni reinicios del servicio.
Integrada en la mayoría de los controladores Ingress de Kubernetes , la funcionalidad de equilibrio de carga distribuye las solicitudes entrantes entre varias instancias del mismo servicio, lo que garantiza un rendimiento óptimo y evita que una sola instancia se vea desbordada.
Los controladores Ingress de Kubernetes modernos incluyen sofisticadas capacidades de gestión SSL/TLS, como la terminación TLS, el aprovisionamiento automático de certificados, la renovación y la aplicación de comunicaciones seguras.
Los controladores Ingress avanzados de Kubernetes monitorizan continuamente el estado de los servicios backend y desvían automáticamente el tráfico de las instancias que fallan para garantizar una alta disponibilidad y una mejor experiencia del usuario.
Las grandes organizaciones utilizan controladores Ingress para consolidar cientos de aplicaciones internas detrás de puntos de acceso unificados. Este enfoque reduce los costos de infraestructura al tiempo que mejora la seguridad a través de la aplicación centralizada de políticas. Una empresa de fabricación global podría enrutar las solicitudes a diferentes sistemas ERP regionales, aplicaciones de cadena de suministro y portales de clientes a través de un único despliegue de controlador Ingress.
Los equipos de desarrollo utilizan controladores Ingress para crear entornos separados para probar nuevas características. Los equipos pueden configurar automáticamente nuevos entornos de pruebas y dirigir el tráfico correcto a cada uno según la característica que se esté desarrollando.
Las compañías emplean los controladores Ingress para compartir de forma segura las API internas con socios y proveedores. Cada organización puede tener diferentes licencias de acceso y límites de uso, todo ello gestionado a través de un único sistema sin necesidad de crear infraestructuras independientes.
Las organizaciones multinacionales implementan controladores Ingress como parte de estrategias globales de administración del tráfico, encaminando a los usuarios a centros de datos geográficamente óptimos mientras mantienen políticas de seguridad y monitoreo consistentes.
Las industrias reguladas utilizan controladores Ingress para implementar el registro requerido, los controles de acceso (agregar cuando se crea la página) y las políticas de gobernanza de datos. Todo el acceso externo se puede monitorear y auditar de forma centralizada a través de la capa Ingress.
La elección del controlador Ingress de Kubernetes adecuado depende de los requisitos de la organización, la infraestructura existente y las capacidades del equipo. Cada implementación ofrece ventajas distintas para casos de uso específicos:
Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.
Las soluciones de contenedores ejecutan y amplían cargas de trabajo en contenedores con seguridad, innovación de código abierto y despliegue rápido.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.