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 Kubernetes, sirviendo como puente entre los usuarios externos y los servicios contenerizados.
Las empresas modernas dependen en gran medida de aplicaciones distribuidas y cargas de trabajo creadas a partir de docenas o cientos de microservicios. Sin una adecuada orquestación del tráfico, cada servicio requeriría su propio endpoint, lo que plantearía importantes problemas de gestión y seguridad.
Por ejemplo, una plataforma sanitaria podría necesitar puntos de acceso independientes para los portales de pacientes, los paneles de control de los proveedores, los sistemas de facturación y los informes de cumplimiento, un enfoque que resulta caro y complejo desde el punto de vista operativo.
Un controlador Ingress de Kubernetes aborda este problema al actuar 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 organizativas específicas.
Boletín del sector
Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. 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 la Cloud Native Computing Foundation (CNCF) en 2015, Kubernetes ahora impulsa la infraestructura de TI esencial para la mayoría de las empresas de la Fortune 500, lo que hace que la gestión del controlador Ingress sea crítica para las operaciones empresariales. Según una encuesta realizada en 2022, el 96 % de las organizaciones utilizan Kubernetes o están evaluando esta tecnología para entornos de producción1.
Antes de Kubernetes, las aplicaciones solían ejecutarse en servidores dedicados o máquinas virtuales (VM), lo que hacía que el escalado resultara caro y llevara mucho tiempo. Kubernetes introdujo contenedores, unidades ligeras y portátiles que empaquetan aplicaciones con todas sus dependencias.
Kubernetes revolucionó los flujos de trabajo de DevOps y la implementación de aplicaciones al introducir la orquestación de contenedores a escala. Esta plataforma de código abierto automatiza la implementación, el escalado y la gestión de aplicaciones contenerizadas 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 implementables más pequeñas compuestas por uno o más contenedores (normalmente contenedores Docker). Estos pods se ejecutan en nodos dentro de clústeres, mientras que un plano de control coordina todas las operaciones del clúster. Los servicios proporcionan identidades de red estables para grupos de pods, lo que permite patrones de comunicación fiables.
Los controladores Ingress suelen implementarse como pods especializados que monitorizan 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 las nuevas implementaciones 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 Kubernetes.
Kubernetes Ingress se diferencia del término general "ingress" (entrada), que se refiere al flujo de tráfico de red entrante en un entorno de aplicaciones contenerizadas nativas 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 los diferentes servicios. Por el contrario, ingress en un sentido más amplio se refiere simplemente a cualquier tráfico que entra en un sistema (en contraposición a "egress", o salida, que se refiere al tráfico que sale del sistema).
Leer 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 de Kubernetes. 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 varios criterios. Esta capacidad permite gestionar de forma eficiente el tráfico externo hacia los servicios, que normalmente se expone mediante ClusterIP dentro del clúster de Kubernetes.
Kubernetes Ingress funciona a través de dos componentes complementarios.
Los recursos de Ingress (también denominados recursos de Kubernetes u objetos API de 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 utilizar el campo ingressClassName para determinar qué controlador Ingress debe gestionar el recurso, lo que permite dirigir el tráfico a un controlador específico cuando existen varios controladores en un clúster.
Los controladores Ingress son componentes de software que leen y aplican reglas de configuración, actuando como proxies inversos con capacidades avanzadas de gestión del tráfico.
Los equilibradores de carga tradicionales de capa 4, como los de las rutas TCP, UDP y HTTP/HTTPS, distribuyen el tráfico basándose ú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 monitorizan continuamente los cambios en estas configuraciones y actualizan 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 fluidas.
Los clústeres de Kubernetes pueden ejecutar varios controladores Ingress de manera simultánea, cada uno de los cuales gestiona diferentes tipos de tráfico o aplicaciones. Cada controlador funciona de manera impulsada por 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. Gestionan el tráfico HTTP y HTTPS, realizan la terminación SSL y toman decisiones inteligentes de equilibrio de carga entre varias instancias de servicio.
Los controladores Ingress de Kubernetes monitorizan continuamente la API de Kubernetes en busca de cambios en los recursos de Ingress en todos los espacios de nombres. Independientemente de si estos cambios se aplican a través de kubectl, pipelines 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 sobrecargada.
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 de usuario.
Las grandes organizaciones utilizan los controladores Ingress para consolidar cientos de aplicaciones internas detrás de puntos de acceso unificados. Este enfoque reduce los costes de infraestructura a la vez que mejora la seguridad mediante la aplicación centralizada de políticas. Una empresa de fabricación global puede dirigir las solicitudes a diferentes sistemas ERP regionales, aplicaciones de cadena de suministro y portales de clientes a través de una única implementación del 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 de ellos en función de la característica que se esté desarrollando.
Las empresas utilizan los controladores Ingress para compartir de forma segura las API internas con partners y proveedores. Cada organización puede tener diferentes permisos de acceso y límites de uso, todos ellos gestionados a través de un único sistema sin necesidad de crear una infraestructura independiente.
Las organizaciones multinacionales implementan controladores Ingress como parte de las estrategias globales de gestión del tráfico, enrutando a los usuarios a centros de datos geográficamente óptimos y manteniendo políticas de seguridad y monitorización coherentes.
Los sectores regulados utilizan controladores Ingress para implementar las políticas necesarias de información de registro, control de acceso (añadir cuando se cree la página) y gobierno de datos. Todo el acceso externo se puede monitorizar 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 e implementación rápida.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.