Instalando Cluster con Docker Swarm

Docker Swarm es una herramienta nativa que permite construir un clúster de máquinas docker.

swarm

Partimos de la base que tenemos instalado Docker y Virtualbox

Instalar docker

Instalar Virtualbox

Instalamos docker-machine

rokitoh@redorbita:/# curl -k -L http://github.com/docker/machine/releases/download/v0.7.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine
rokitoh@redorbita:/# chmod +x /usr/local/bin/docker-machine

 

Empleamos Docker Machine para crear los distintos nodos del cluster así como el manager que es el responsable de gestionar los recursos.  Nosotros para la instalación vamos a emplear el driver de virtualbox.

Actualmente Docker Machine soporta las siguientes plataformas:

rokitoh@redorbita:/# docker-machine create -d virtualbox manager

rokitoh@redorbita:/# docker-machine create -d virtualbox redorbita01

rokitoh@redorbita:/# docker-machine create -d virtualbox redorbita02

 

Para listar las maqunas creadas empleamos el siguiente comando:

rokitoh@redorbita:/# docker-machine ls
NAME          ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
manager       *        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.2
redorbita01   –        virtualbox   Running   tcp://192.168.99.101:2376           v1.11.2
redorbita02   –        virtualbox   Running   tcp://192.168.99.102:2376           v1.11.2

 

Nos conectamos al manager

rokitoh@redorbita:/# eval $(docker-machine envmanager)
Generamos el token
rokitoh@redorbita:/# docker run –rm swarm create
Unable to find image ‘swarm:latest’ locally
latest: Pulling from library/swarm
1e61bbec5d24: Pull complete
8c7b2f6b74da: Pull complete
245a8db4f1e1: Pull complete
Digest: sha256:661f2e4c9470e7f6238cebf603bcf5700c8b948894ac9e35f2cf6f63dcda723a
Status: Downloaded newer image for swarm:latest
86c0b73088bd1cb2b41fd308193aea66

 

Configuramos el manager mediante el token obtenido en el anterior comando

rokitoh@redorbita:/# docker run -d -p 3376:3376 -t -v /var/lib/boot2docker:/certs:ro swarm manage -H 0.0.0.0:3376 –tlsverify –tlscacert=/certs/ca.pem –tlscert=/certs/server.pem –tlskey=/certs/server-key.pem token://86c0b73088bd1cb2b41fd308193aea66

 

Una vez configurado el manager debemos que conectarnos a todos los nodos que compongan el cluster y añadir el token.

Nos conectamos a redorbita01

rokitoh@redorbita:/# eval $(docker-machine env redorbita01)

Añadimos el nodo al cluster

rokitoh@redorbita:/# docker run -d swarm join –addr=192.168.99.101:2376 token://86c0b73088bd1cb2b41fd308193aea66

 

Nos conectamos a redorbita02

rokitoh@redorbita:/# eval $(docker-machine env redorbita02)

Añadimos el nodo al cluster

rokitoh@redorbita:/# docker run -d swarm join –addr=192.168.99.102:2376 token://86c0b73088bd1cb2b41fd308193aea66

Una vez configurado solo nos queda conectarnos al cluster y empezar administrarlo.

rokitoh@redorbita:/# eval $(docker-machine env manager)
rokitoh@redorbita:/#DOCKER_HOST=$(docker-machine ip manager):3376

Comandos básicos:

Obtener información de los nodos de nuestro cluster

rokitoh@redorbita:/# docker info
Containers: 2
Images: 2
Storage Driver:
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 2
redorbita01: 192.168.99.101:2376
└ ID: FOPV:OGXB:7YFC:LNK6:ZMN4:NNSE:PDZ6:P2CQ:VOKX:WTTZ:YGO4:ABQW
└ Status: Healthy
└ Containers: 1
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.021 GiB
└ Labels: executiondriver=, kernelversion=4.4.12-boot2docker, operatingsystem=Boot2Docker 1.11.2 (TCL 7.1); HEAD : a6645c3 – Wed Jun  1 22:59:51 UTC 2016, provider=virtualbox, storagedriver=aufs
└ UpdatedAt: 2016-07-15T19:17:59Z
└ ServerVersion: 1.11.2
redorbita02: 192.168.99.102:2376
└ ID: JAW2:JIDC:WEOY:CDZY:5LT7:QTHB:3ALB:Z4C2:PQCE:4AHL:CDU6:S55I
└ Status: Healthy
└ Containers: 1
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.021 GiB
└ Labels: executiondriver=, kernelversion=4.4.12-boot2docker, operatingsystem=Boot2Docker 1.11.2 (TCL 7.1); HEAD : a6645c3 – Wed Jun  1 22:59:51 UTC 2016, provider=virtualbox, storagedriver=aufs
└ UpdatedAt: 2016-07-15T19:18:33Z
└ ServerVersion: 1.11.2
Execution Driver:
Kernel Version: 4.4.12-boot2docker
Operating System: linux
CPUs: 2
Total Memory: 2.042 GiB
Name: e94e6277e756
ID:
Http Proxy:
Https Proxy:
No Proxy:

Ver los contenedores ejecutandose

rokitoh@redorbita:/# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
909281e4c434        swarm               “/swarm join –addr=   22 minutes ago      Up 14 minutes       2375/tcp            redorbita02/berserk_bartik
c05fb16e862a        swarm               “/swarm join –addr=   23 minutes ago      Up 15 minutes       2375/tcp            redorbita01/modest_babbage

 

Un saludo.

:wq!

 

One thought on “Instalando Cluster con Docker Swarm

  1. Pingback: Instalando Cluster con Docker Swarm | PlanetaLibre

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*