En Kubernetes, ingress y egress se refieren a cómo el tráfico de red entra y sale de un entorno de aplicaciones en contenedores nativos de la nube.
Estos flujos de tráfico son fundamentales para ejecutar aplicaciones modernas dentro de la infraestructura de la nube. Su gestión eficaz admite una amplia gama de casos de uso, como el enrutamiento del tráfico de clientes a aplicaciones web o el acceso seguro a API de terceros.
En el mundo actual impulsado por el cloud computing, Kubernetes potencia cargas de trabajo cada vez más críticas. Como resultado, la capacidad granular de controlar el tráfico se ha convertido en esencial para mantener el rendimiento, aplicar medidas de seguridad y cumplir con los requisitos de cumplimiento.
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.
Kubernetes, también conocido como k8s o kube, es una plataforma de orquestación de contenedores que automatiza la implementación, el escalado y el mantenimiento de aplicaciones en un grupo de recursos informáticos. En lugar de gestionar los servidores directamente, los equipos de DevOps y TI utilizan Kubernetes para ejecutar aplicaciones en contenedores, unidades de software ligeras y autónomas que incluyen todo lo necesario para ejecutar una aplicación.
Según un informe de la CNCF, Kubernetes es el segundo proyecto de código abierto más grande del mundo (después de Linux) y la principal herramienta de orquestación de contenedores para el 71 % de las empresas Fortune 100.
Docker es la herramienta más utilizada para crear imágenes de contenedores. En Kubernetes, los contenedores se agrupan en unidades denominadas pods, que son las unidades desplegables más pequeñas y pueden contener uno o varios contenedores. Kubernetes programa estos pods en un clúster de máquinas conocidas como nodos.
Los pods y sus recursos relacionados se organizan en espacios de nombres, que proporcionan una separación lógica para gestionar diferentes equipos, proyectos o entornos dentro del mismo clúster. Kubernetes gestiona la funcionalidad clave del clúster, como el equilibrio de carga, la conmutación por error, el escalado y la autorreparación, abstrayendo gran parte de la complejidad de la infraestructura de bajo nivel.
Dentro de un clúster de Kubernetes, los servicios a menudo necesitan comunicarse entre sí y, a veces, con sistemas externos. Kubernetes gestiona y controla el tráfico de forma que aísla los componentes internos para mejorar el rendimiento y la seguridad. Como resultado, tanto el tráfico entrante como el saliente deben definirse, gestionarse y configurarse explícitamente.
En informática básica, ingress frente a la salida se refiere al tráfico entrante frente al saliente en una red o sistema. Ingress y egress de Kubernetes proporcionan a los equipos de la plataforma un marco controlado para gobernar cómo fluye el tráfico dentro y fuera del clúster de Kubernetes. Este aspecto es esencial para operar entornos de producción seguros y escalables.
Ingress se refiere al tráfico entrante de usuarios o sistemas externos a un clúster de Kubernetes, normalmente a través de HTTP o HTTPS (ambos funcionan con el protocolo TCP). En lugar de exponer todos los servicios directamente a Internet, las organizaciones definen las reglas de entrada a través de un recurso ingress. Este recurso se escribe normalmente en YAML, que indica a Kubernetes cómo enrutar el tráfico según criterios como las rutas de URL o los nombres de dominio.
Las reglas de ingress se aplican mediante un controlador de entrada, una pieza de software (a menudo basada en NGINX u otro proxy inverso) que sirve como punto de entrada real. El controlador recibe las solicitudes entrantes, descifra el tráfico si es necesario y lo reenvía al servicio correcto dentro del clúster.
Por ejemplo, las reglas de ingress pueden configurarse para hacer lo siguiente:
Kubernetes proporciona varios métodos integrados para exponer servicios fuera del clúster. El recurso ingress funciona con determinados tipos de servicio pero ofrece un enfoque más flexible y centralizado, especialmente para el tráfico basado en la web.
Estos son algunos de los tipos de servicio más comunes:
En comparación, el recurso ingress permite acceder a varios servicios a través de una única dirección IP externa mediante el uso de reglas de enrutamiento inteligentes, basadas en nombres de dominio o rutas. Centraliza el manejo y el control del tráfico HTTP(S), lo que lo convierte en una opción sólida para las cargas de trabajo de producción.
Egress se refiere al tráfico saliente, cuando los servicios dentro del clúster de Kubernetes necesitan comunicarse con destinos o sistemas de tráfico externos (por ejemplo, API, servicios cloud, bases de datos, etc.). Aunque Kubernetes permite el tráfico saliente sin restricciones de forma predeterminada, esta política abierta rara vez es adecuada para entornos de producción.
Las organizaciones suelen querer controlar y supervisar qué servicios pueden conectarse a endpoints externos, tanto por motivos de seguridad como de cumplimiento. Por ejemplo, una empresa de venta minorista puede querer que su servicio de pago llegue solo a las pasarelas de pago aprobadas y bloquee todos los demás destinos.
Kubernetes proporciona varios métodos para gestionar la salida de forma eficaz y segura. Al implementar estos controles, las organizaciones pueden garantizar que solo el tráfico autorizado fluya a redes externas, lo que mejora la seguridad y el cumplimiento.
Las políticas de red de Kubernetes pueden restringir qué pods están permitidos para hacer conexiones de salida y especificar las direcciones o dominios que pueden alcanzar, a menudo utilizando la notación CIDR para los rangos de IP. Estas políticas admiten modelos zero trust al permitir solo la comunicación explícitamente autorizada. Las reglas de egress dentro de estas políticas de red definen las restricciones del tráfico saliente, controlando a qué destinos externos pueden acceder los pods.
Las puertas de enlace de egress, a menudo implementadas como parte de una malla de servicios, pueden enrutar todo el tráfico saliente a través de un punto de control monitorizado, lo que permite un control avanzado del tráfico, elcifrado y la observabilidad.
También se pueden utilizar nodos de egress dedicados o puertas de enlace NAT para centralizar y registrar las conexiones salientes, proporcionando trazabilidad y un mejor aislamiento del rendimiento.
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.