Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.4K
Vistas
¿Cómo se realiza el balanceo de carga en el modo Docker-Swarm?

Estoy trabajando en un proyecto para configurar una arquitectura en la nube usando docker-swarm. Sé que con swarm podría implementar réplicas de un servicio, lo que significa que se ejecutarán varios contenedores de esa imagen para atender las solicitudes.

También leí que docker tiene un balanceador de carga interno que administra esta distribución de solicitudes.

Sin embargo, necesito ayuda para entender lo siguiente:

Digamos que tengo un contenedor que expone un servicio como una API REST o que es una aplicación web. Y si tengo varios contenedores (réplicas) implementados en el enjambre y tengo otros contenedores (ejecutando algunas aplicaciones) que hablan con este servicio HTTP/REST.

Entonces, cuando escribo esas aplicaciones, ¿qué combinación de IP: PUERTO uso? ¿Es alguna de las direcciones IP del nodo trabajador que ejecuta estos servicios? ¿Al hacerlo, se encargará de distribuir la carga de manera adecuada incluso entre otros trabajadores/gerentes que ejecutan el mismo servicio?

¿O debería llamar al administrador, que a su vez se encarga del enrutamiento adecuado (incluso si el nodo del administrador no tiene un contenedor que ejecute este servicio específico)?

Gracias.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

cuando escribo esas aplicaciones, ¿qué combinación de IP: PUERTO uso? ¿Es alguna de las direcciones IP del nodo trabajador que ejecuta estos servicios?

Puede usar cualquier nodo que participe en el enjambre, incluso si no existe una réplica del servicio en cuestión en ese nodo. Por lo tanto, utilizará la combinación Node:HostPort . La malla de enrutamiento de entrada enrutará la solicitud a un contenedor activo.

Una imagen vale diez mil palabras

ingrese la descripción de la imagen aquí

¿Al hacerlo, se encargará de distribuir la carga de manera adecuada incluso entre otros trabajadores/gerentes que ejecutan el mismo servicio?

El controlador de ingreso funcionará por turnos de forma predeterminada.

Ahora los clientes deben usar dns round robin para acceder al servicio en los nodos de enjambre de docker. Se producirá el clásico problema de caché de DNS. Para evitar eso, podemos usar un balanceador de carga externo como HAproxy.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Una información adicional importante a la respuesta existente.

La ventaja de usar un proxy ( HAProxy ) frente a Docker Swarm es que los nodos de Swarm pueden residir en una red privada a la que puede acceder el servidor proxy, pero que no es de acceso público. Esto hará que su clúster sea seguro.

Si está utilizando AWS VPC , puede crear una subred privada y colocar sus nodos de enjambre dentro de la subred privada y colocar el servidor proxy en la subred pública que puede reenviar el tráfico a los nodos de enjambre.

Cuando accede al balanceador de carga HAProxy, reenvía las solicitudes a los nodos del enjambre. La swarm routing mesh enruta la solicitud a una tarea activa. Si, por algún motivo, el programador de enjambre envía tareas a diferentes nodos, no necesita volver a configurar el balanceador de carga.

Para obtener más detalles, lea https://docs.docker.com/engine/swarm/ingress/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda