Get it on Google Play

Formación Docker: Creando clusters de servidores con Docker Swarm

28-02-2017
 
Swarm

Swarm

Swarm es la solución de Docker para gestionar clusters de servidores. Es tremendamente ágil de usar y nos permite gestionar grandes granjas de servidores desde un mismo punto. Vamos a verlo con un ejemplo:

Antes de empezar

Deberemos empezar con tres máquinas con Docker instalado. Para hacer esto podemos hacerlo instalando servidores, con máquinas virtuales(Poco recomendado) o utilizando Docker Machine. Docker Machine nos permite crear hosts de manera automática sobre distintas plataformas como Virtual Box, Soft Layer, Google, Amazon, etc.

En este post no voy a entrar en como instalar hosts con Docker Machine, eso me lo reservo para futuros posts ;).

Instalando el Manager

Nos conectamos a nuestra máquina que hará de ‘Manager’ y ejecutamos el siguiente comando:

docker swarm init --advertise-addr <MANAGER-IP>

Esto inicializará la máquina manager, generará un token que identificará el cluster y nos devolverá un mensaje tipo este:

Swarm initialized: current node (l2lz72yojbsbkhyp3nsw8ftv3) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-273e98uew4f76t8184wfu2jnrz1ib98z889lh5h0nmffv0k1lq-co3rg619lrfg1su7vjso96rl3 \
    192.168.99.100:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Donde nos muestra el comando que deberemos ejecutar en las máquinas nodo o clientes para añadirlas al cluster. En caso que perdiéramos el mensaje, siempre podemos recuperarlo con el siguiente comando:

docker swarm join-token worker

Instalando los clientes o nodos

Ahora que ya tenemos nuestro manager nos podremos conectar a los clientes y ejecutar el comando. En el caso del ejemplo ejecutamos:

 docker swarm join \
    --token SWMTKN-1-273e98uew4f76t8184wfu2jnrz1ib98z889lh5h0nmffv0k1lq-co3rg619lrfg1su7vjso96rl3 \
    192.168.99.100:2377

Trabajando con el cluster

Ahora que ya tenemos toda la infraestructura creada y configurada ya podemos jugar con nuestros cluster. Sobre el cluster podremos crear servicios que y escalarlos hasta el infinito. Podremos hacerlo con los siguientes comandos:

# Vemos el listado de nodos
docker node ls

# Creamos un servicio
docker service create --replicas <número de replicas> --name <nombre servicio> <imagen> <parámetros>

# Listado de servicios
docker service ls

# Inspeccionar servicio
docker service inspect --pretty <SERVICE-ID>

# Consultar que nodos estan corriendo el servicio
docker service ps <SERVICE-ID>

# Escalar servicio
docker service scale <SERVICE-ID>=<número de replicas>

# Eliminar un servicio
docker service rm <nombre servicio>

Incluso podremos levantar servicios con Compose:

sudo docker stack deploy --compose-file=docker-compose.yml <stack-name> 

Interesado en formación Docker?

 

Leave a Reply