Load balancer en Kubernetes

Para trabajar de la forma más eficiente posible con Kubernetes, es importante que la carga de trabajo se distribuya de forma manejable entre diferentes pods. Es aquí donde el load balancer adquiere protagonismo.

Managed Kubernetes de IONOS

Una forma fácil de gestionar la carga de trabajo de contenedores. Configuración de clústeres de Kubenetes completamente automatizados y visibilidad y control máximos de los clústeres K8s.

Almacenamiento persistente
Soporte profesional 24/7
Configuración automatizada del clúster

¿Qué es un load balancer en Kubernetes?

Un load balancer o balanceador de carga se utiliza para repartir la carga que tienen que procesar los servidores o las máquinas virtuales de la manera más eficiente posible con el objetivo de mejorar el rendimiento general. Normalmente, un load balancer se sitúa antes de los servidores para evitar que los servidores individuales se sobrecarguen, lo que también asegura que los recursos disponibles se aprovechen de la mejor manera posible. Incluso si falla un servidor, el balanceador de carga garantiza el funcionamiento del sistema redirigiendo las peticiones de forma selectiva. 

Los load balancers de Kubernetes funcionan de forma un poco diferente, pero con la misma idea de base. Sin embargo, hay que distinguir entre dos tipos de balanceadores de carga en Kubernetes:

  • Kubernetes load balancers internos
  • Kubernetes load balancers externos

Kubernetes load balancers internos

Aunque se presenten brevemente los Kubernetes load balancers internos, el artículo se centrará en los externos. Frente a los balanceadores de carga clásicos, un balanceador de carga interno adopta un enfoque diferente y garantiza que solo las aplicaciones que se ejecutan en la misma red virtual que tu clúster de Kubernetes puedan acceder a él.

Kubernetes load balancers externos

Los load balancers externos asignan a tus clústeres de Kubernetes sus propias direcciones IP o nombre DNS para que puedan recibir HTTP requests externas. Este load balancer es un tipo de servicio especial de Kubernetes y enruta el tráfico externo a los pods individuales de tu clúster. De este modo, se asegura la mejor distribución de las peticiones entrantes.

Hay varios algoritmos para configurar load balancers en Kubernetes. El que elijas depende totalmente del uso que quieras darle. Los diferentes algoritmos determinan principalmente el principio según el cual el equilibrador de carga procesa el tráfico entrante.

Consejo

¿No utilizas todavía Kubernetes? IONOS Managed Kubernetes te permite desplegar tus aplicaciones de contenedores en Kubernetes y beneficiarte de las amplias ventajas del software de gestión de contenedores. Nuestro tutorial sobre Kubernetes puede ayudarte a empezar con Kubernetes.

¿Para qué sirve el load balancer de Kubernetes?

El load balancer de Kubernetes sirve para distribuir de forma óptima del tráfico externo a los pods de tu clúster Kubernetes. Por ello, se puede usar en numerosas situaciones, casi para cualquier propósito. El hecho de que los load balancers de Kubernetes puedan dirigir el tráfico a cada uno de los pods garantiza que el clúster cuente con una disponibilidad alta. Si un pod deja de funcionar o tiene errores, el balanceador de carga reparte las tareas entre los demás pods.

Con los balanceadores de carga, también se mejora la escalabilidad. Si se determina que el tráfico entrante requiere menos o más recursos que los disponibles en ese momento, Kubernetes puede responder de forma automática creando o eliminando pods.

Te explicamos cómo crear un load balancer para Kubernetes

Para crear un load balancer de Kubernetes, necesitas que tu clúster se ejecute en una nube o en un entorno que admita la configuración de load balancers externos.

En primer lugar, crea un servicio y, a continuación, asígnale el tipo de servicio Load Balancer mediante la siguiente línea:

type: LoadBalancer

Otra forma de crear un load balancer de Kubernetes es utilizar la línea de comandos kubectl.

Utilizando el comando

kubectl expose deployment test --target-port=9376 \ --name=test-service –type=LoadBalancer

creas y despliegas un nuevo servicio llamado test-service que actuará como un balanceador de carga.

Si quieres averiguar la dirección IP del servicio que acabas de crear, el siguiente comando te ayudará:

kubectl describe services test-service