Tips, Soluciones y Novedades en Tecnología

05/06/2023

Escalamiento horizontal en Docker


El despliegue de las aplicaciones en contenedores docker es una tarea manual, sobre todo si queremos escalar, docker solo no permite escalar, pero docker compose si que lo permite, y nos da la facilidad para escalar con simples comandos y de varias maneras.

En este Post estamos utilizando Docker desktop para Windows, Para la instalación seguir la guía correspondiente:https://docs.docker.com/desktop/install/windows-install/


Una vez instalado, habilitamos la opción de docker compose:


Abrimos la consola y verificamos si todo esta configurado correctamente:


Verificamos la versión de docker compose:



Ahora non ubicamos en una carpeta en particular, en este caso C:\docker\docker-nginx y dentro creamos el archivo .yml  con el siguiente contenido. 

C:\docker\docker-nginx\docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx
    deploy:
      replicas: 3
    network_mode: bridge


Ahora abrimos la consola y ejecutamos el siguiente comando para iniciar el contenedor:
Nos ubicamos en el directorio del archivo  "docker-nginx"

C:\docker\docker-nginx>docker-compose up -d 


El resultado se descargará la imagen de nginx y creará 3 instancias.

Ahora para escalar a mas de 3 instancias podemos hacerlos de 2 maneras.

Primera:

Modificando el archivo docker-compose.yml y aumentando el numero de replicas, ejemplo a 5. volvemos a ejecutar

C:\docker\docker-nginx>docker-compose up -d 

Y tendremos 5 instancias de nginx corriendo.

Segunda:

Esta segunda es mediante un flag de docker-compose, llamado scale, y seria de la siguiente forma:

C:\docker\docker-nginx>docker-compose up -d --scale nginx=5

El resultado lo podemos ver:



Nuevamente podemos ejecutar pero ahora con 10 instancias:

C:\docker\docker-nginx>docker-compose up -d --scale nginx=10


Ahora reducimos a 2 instancias:

C:\docker\docker-nginx>docker-compose up -d --scale nginx=2


Y así podremos ir escalando en medida que necesitemos y los recursos los soporten.

La fuente también lo pueden descargar en Github

Saludos.



0 comments:

Publicar un comentario