Hay tanta confusión como caos en el mundo de los contenedores. Cada día parece traer alguna nueva capacidad o componente al mundo de los entornos de orquestación de contenedores. Esto es necesario, porque todavía está madurando a medida que el uso de contenedores se expande más allá de lo experimental hacia lo existencial.
La velocidad y la escala se encuentran entre los dos impulsores principales de las implementaciones de contenedores. El primero tiene que ver tanto con el desarrollo como con la entrega y, por lo tanto, el enfoque está en la escala. Pero no solo hablamos de escala de protocolo vainilla, sino de escala de aplicação .
La distinción es importante. Se ha votado que los contenedores son los más propensos a contener microservicios, y una de las reglas cardinales de los microservicios es la comunicación solo a través de API. Una API que se basa en HTTP, no en TCP, y por lo tanto requiere una solución más inteligente para escalar.
La mayoría de los entornos de orquestación de contenedores vienen listos para usar con servidores proxy capaces de escalar automáticamente. Esto significa un equilibrio de carga tradicional (POLB) en la capa TCP. Las direcciones IP y los puertos son la lengua franca de estos servidores proxy. Si bien funcionan bien en un entorno donde los servicios se diferencian según una combinación de dirección IP y puerto, no funcionan tan bien para aplicações (servicios) que se diferencian por características de la capa HTTP, como la versión de API, el URI o el nombre de host. Se trata de construcciones de capa de aplicación (HTTP) y requieren servidores proxy más inteligentes para enrutar y escalar con la velocidad deseada. Estas construcciones deben tenerse en cuenta al recibir una solicitud de una entidad del lado del cliente, algo que la mayoría de las soluciones a escala estándar para contenedores no pueden proporcionar.
En respuesta a esta necesidad surge el concepto de control de Ingress*. El control de ingreso es básicamente una aplicación o enrutamiento HTTP o conmutación de capa 7 o conmutación de contenido o cualquier otro de una docena de nombres con los que se ha denominado a esta capacidad desde principios del siglo. El control de ingreso supone una diferenciación de servicios en la capa de aplicação (HTTP) y, en consecuencia, actúa en consecuencia al tomar decisiones de enrutamiento y escalamiento dentro del entorno de contenedores.
Pero no se puede simplemente colocar un F5 BIG-IP frente a un entorno de contenedores y llamarlo control de ingreso. Esto se debe a que un controlador de Ingress también debe integrarse con el entorno de orquestación de contenedores para lograr la escala y la velocidad deseadas. Para hacer eso, necesita algo que viva dentro del entorno de contenedores que hable de forma nativa la orquestación de contenedores y BIG-IP.
Eso es lo que hace el controlador BIG-IP para Kubernetes . Es un contenedor Docker que se ejecuta en un pod de Kubernetes y le permite utilizar un BIG-IP como controlador de ingreso de Kubernetes. Esto significa que puede leer el recurso Ingress de Kubernetes y configurar automáticamente BIG-IP con los objetos adecuados para garantizar que las solicitudes se escalen en función de las construcciones de la capa de aplicación que desee.
Ahora bien, antes de que este controlador estuviera disponible, la gente tendía a usar BIG-IP para “distribuir” el tráfico a través de una segunda capa de servidores proxy que se ejecutaban dentro del entorno de orquestación de contenedores. Esos proxies proporcionaron control de ingreso. Hay algunas buenas razones para dejar de hacerlo, incluido el dolor de cabeza recursivo que supone ejecutar el servicio de disponibilidad dentro de aquello para lo que proporciona disponibilidad.
Otras buenas razones incluyen:
Cualquiera sea el motivo, la realidad es que puedes utilizar un BIG-IP como controlador de ingreso para Kubernetes. No necesitas dos niveles diferentes para escalar. Eliminar ese segundo nivel de escala mejorará la velocidad (de entrega e implementación) y simplificará las implementaciones al tiempo que proporciona una plataforma en la que puede habilitar una amplia variedad de servicios avanzados de seguridad, velocidad y escala.
Puede leer más sobre el controlador BIG-IP para Kubernetes aquí , u obtenerlo del centro Docker, aquí o simplemente extraerlo directamente:
Docker pull f5networks/k8s-bigip-ctlr
Escala activada.
* Sí, la “I” mayúscula es importante, ya que la distingue del término de red tradicional “ingreso”, que simplemente se refiere a “acceso al entorno”, mientras que “ingreso” se utiliza para referirse a “enrutamiento HTTP”. Sí, tendemos a hacer las cosas más difíciles de lo que tienen que ser, pero así es el mundo en el que los desarrolladores están implementando construcciones de red y redefiniendo más que simplemente cómo se entregan las aplicaciones.