BLOG | OFICINA DEL CTO

Viernes de F5: Ingress en comparación con ingreso

Miniatura de Lori MacVittie
Lori MacVittie
Publicado el 28 de diciembre de 2018

A medida que los mundos de DevOps y NetOps colisionan y los entornos de contenedores adoptan definiciones tradicionalmente utilizadas en la red, parece prudente explorar el uso del término a menudo confuso "ingreso" en términos de la ruta de datos y los entornos de contenedores.

Los términos ingreso y egreso se han utilizado clásicamente para describir la dirección del tráfico en la red desde la perspectiva del centro de datos. La entrada es entrante, la salida es saliente.

A medida que los entornos de contenedores han madurado, el término ingreso se ha aplicado para tener una definición muy específica y centrada en la aplicação .

Ingreso. Un objeto API que administra el acceso externo a los servicios de un clúster, normalmente HTTP. Ingress puede proporcionar equilibrio de carga, terminación SSL y alojamiento virtual basado en nombres.

Es importante hacer una pausa y observar que un recurso de ingreso, tal como se define en un entorno de Kubernetes, describe capacidades que se supone que se ejecutarán dentro del perímetro del contenedor. 

Cada ingreso es un proxy inverso que acepta solicitudes externas y, según las reglas especificadas por el recurso de ingreso de Kubernetes, dirige esas solicitudes al servicio de Kubernetes correcto. A su vez, el servicio equilibra la carga de las solicitudes entre un conjunto de contenedores asociados, generalmente mediante algoritmos nativos de equilibrio de carga de capa 4 (TCP). Esta es una de las formas en que una API unificada se presenta al mundo exterior. El ingreso analiza las llamadas API (la ruta URI) y las distribuye a los microservicios alojados en contenedores apropiados dentro del clúster de contenedores.

F5 proporciona las mismas capacidades que un ingreso de Kubernetes clásico, pero agrega capacidades adicionales en forma de enrutamiento SNI y equilibrio de carga de capa 4 (TCP). La capacidad de realizar enrutamiento SNI (indicador de nombre de servidor) es un beneficio para aquellos que desean cifrado TLS de extremo a extremo de los intercambios de mensajes, ya que permite a F5 enrutar adecuadamente las solicitudes según la información de los encabezados sin descifrar la carga/mensaje real. Si bien esto restringe el rango de funcionalidad que se puede aplicar a la solicitud (por ejemplo, no se puede escanear en busca de contenido malicioso), proporciona el soporte necesario para las arquitecturas en las que el contenido debe permanecer cifrado por razones regulatorias u operativas. El equilibrio de carga de capa 4 (TCP) a menudo se utiliza externamente a un entorno de contenedores para escalar servicios de ingreso de estilo Kubernetes. 

F5 normalmente se implementa externamente al entorno de contenedores. A menudo se utiliza como una solución de equilibrio de carga para exponer clústeres externamente, es decir, proporcionar acceso público a los servicios compuestos por un clúster de contenedores. Una encuesta de CNCF descubrió que el 67 % de los encuestados elige una opción de equilibrador de carga para exponer los servicios del clúster de forma externa, y otro 33 % aprovecha las capacidades de ingreso (L7).

Para que podamos ofrecer las mismas capacidades que un ingreso de Kubernetes, se utiliza un "conector" nativo del contenedor para facilitar las actualizaciones de las políticas que definen las políticas de tráfico. Este conector reside dentro y se integra con el orquestador de contenedores (normalmente Kubernetes, pero Red Hat OpenShift también es popular). La comunicación con F5 Ingress se realiza mediante la API. Las actualizaciones incluyen cambios en las definiciones de recursos de Ingress (políticas de enrutamiento HTTP), así como cambios en la configuración, como el lanzamiento o la eliminación de una instancia de contenedor que afecte a una definición de servicio actual.

La ventaja de utilizar F5 en lugar de servicios de ingreso simples es la capacidad de aplicar capacidades avanzadas al tráfico entrante y saliente. Se pueden aplicar optimizaciones de seguridad, enriquecimiento de encabezado y rendimiento específicas del cliente al usar F5 sin modificar el entorno de contenedores ni la aplicação en sí.

RECURSOS ADICIONALES: