Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Instalando Cluster con Docker Swarm

Instalando Cluster con Docker Swarm

Tabla de contenidos

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

bash
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:

bash
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:

bash
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

bash
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

bash
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

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

Añadimos el nodo al cluster

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

Nos conectamos a redorbita02

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

Añadimos el nodo al cluster

bash
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.

bash
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

bash
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

bash
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!

Comentarios