Docker componiendo el equilibrio y la escala de carga

Docker componiendo el equilibrio y la escala de carga
Docker Compose es un componente básico y muy querido de Docker que se usa universalmente para procesar y administrar múltiples aplicaciones y servicios de contenedores. A medida que Docker Compose ejecuta aplicaciones de múltiples contenedores, por lo tanto, se requiere administrar estos servicios o contenedores sabiamente. Gracias a Docker, el escalado y el equilibrio de carga nos permiten administrar y ejecutar múltiples servicios de manera eficiente.

Este blog demostrará cómo implementar escala y equilibrio de carga en Docker Compose.

Cómo ampliar los servicios en Docker Compose?

Escalar en Docker significa hacer réplicas de servicios de composición o contenedores. Estas réplicas se gestionan en el anfitrión. Para implementar la escala en Docker Compose, revise las instrucciones proporcionadas.

Paso 1: Generar Dockerfile
Genere un Dockerfile que contenga el Golang "Main1.ir"Programa. Para este propósito, pegue el código proporcionado en el archivo:

De Golang: 1.8
WorkDir/Go/SRC/App
Copiar Main1.ir .
Ejecutar ir compilación -o servidor web .
Exponer 8080: 8080
PUNTO DE ENTRADA ["./Servidor web"]

Paso 2: Generar el archivo de composición
A continuación, cree otro archivo llamado "compuesto de acopolador.YML"Archivo y pegue las instrucciones proporcionadas a continuación:

Versión: "Alpine"
servicios:
web:
construir: .
Puertos:
- 8080

Aquí:

  • "servicios"Se utiliza para crear y configurar el servicio Docker-Compose. Para ese propósito, hemos configurado el "web" servicio.
  • "construir"Se utiliza para especificar DockerFile. En el bloque de código dado, la clave de compilación utilizará el DockerFile proporcionado anteriormente.
  • "puerto"Están exponiendo puertos para contenedores. Aquí, hemos utilizado el "8080" en lugar de "8080: 8080". Esto se debe a que cuando escalamos los diferentes servicios, el puerto vinculante "8080"Se asignará a un solo servicio, y el otro generará el error. El "puerto" valor "8080"Permite a Docker asignar los puertos a los servicios en la red de host automáticamente:

Alternativamente, los usuarios pueden asignar el "puerto"Valor en el rango como"80-83: 8080". Esto asignará automáticamente los puertos de exposición dentro del rango especificado a cada contenedor o servicio.

Paso 3: enciende los contenedores
A continuación, enciende los contenedores usando el "Docker-compuesto" dominio. Para replicar el "web"Servicio, utilice el"-escalaOpción "junto con el"="Valor como se muestra a continuación:

Docker-Compose Up --Scale Web = 2

Paso 4: Lista de componer contenedores
Enumere los contenedores de composición y verifique si los servicios de escala se están ejecutando o no:

Docker -Compose PS -A

Puedes ver dos réplicas del "web"El servicio se ejecuta en"61844" y "61845"Puertos de host locales respectivamente:

Para confirmación, navegue a los puertos asignados del host local y verifique si el servicio se está ejecutando o no.

Se puede observar que el "webEl servicio se ha ejecutado correctamente en los puertos asignados:

Cómo implementar el equilibrio de carga en Docker Compose?

Load Balancer es una de las mejores soluciones para administrar el tráfico de diferentes contenedores o clientes en el servidor. Aumenta la confiabilidad y disponibilidad de aplicaciones y servicios. Se utilizan diferentes criterios de enrutamiento en el backend para administrar las aplicaciones de contenedores múltiples, como Round Robin.

Para implementar la técnica de equilibrio de carga en los servicios de composición, utilice las instrucciones dadas.

Paso 1: Crear "Nginx.archivo conf ”
Crear un "nginx.confusiónArchivo "y pegue el siguiente código en el archivo. Estas instrucciones incluyen:

  • "río arriba" con el nombre "todo"Especifique el servicio ascendente. Aquí, puede especificar tantos servicios como sea necesario para administrar. Por ejemplo, hemos definido el "webSe espera que el servicio se exponga en el puerto 8080.
  • En el "servidor", Hemos establecido el puerto de escucha"8080"Para el equilibrador de carga Nginx y pasó el poder"http: // all/"Para administrar el servicio aguas arriba:
usuario nginx;
eventos
Worker_Connections 1000;

http
aguas arriba todos
Web del servidor: 8080;

servidor
Escucha 8080;
ubicación /
proxy_pass http: // all/;


Paso 2: Configurar el servicio Nginx de equilibrio de carga en "Docker-Compose.archivo YML "
A continuación, configure el equilibrador de carga "nginx"Servicio en el"compuesto de acopolador" archivo. Para este propósito, hemos especificado las siguientes claves:

  • "imagen"Define la imagen base para el"nginx" servicio.
  • "volúmenes"Se usa para unir el"nginx.confusión"A la ruta objetivo del contenedor.
  • "depende de"Especifica que el"nginx"El servicio dependerá del"web" servicio:
  • "puerto"Especifique el puerto de escucha del servicio Nginx Balancer:
Versión: "Alpine"
servicios:
web:
construir: .
Nginx:
Imagen: Nginx: Último
Volúmenes:
- ./nginx.conf:/etc/nginx/nginx.conf: Ro
depende de:
- web
Puertos:
- 8080: 8080

Paso 3: Ejecutar contenedores de composición
Ahora, ejecute el contenedor de composición junto con el "-escalaOpción para ejecutar las réplicas del servicio web:

Docker-Compose Up --Scale Web = 2

Aquí, estas réplicas de servicios web se administran en el servicio de equilibrio de carga "nginx":

Navegue por el puerto de escucha del "nginx"Servicio y verifique si el balance de carga administra los dos contenedores de servicio web en el mismo puerto o no. Actualice la página para cambiar al segundo contenedor, y nuevamente actualice la página para cambiar al primer contenedor:

Esto se trata de Docker componiendo el equilibrio y escalado de la carga.

Conclusión

El equilibrio y la escala de carga son técnicas para aumentar la disponibilidad y confiabilidad de la aplicación. La escala de Docker genera las réplicas de los servicios especificados y el equilibrio del equilibrador de carga o administra el tráfico hacia y desde diferentes contenedores en el servidor. Para este propósito, hemos usado "nginx"Como equilibrador de carga. Este blog ha demostrado Docker componiendo el equilibrio y la escala de la carga.