Important
Aquest article està obsolet i pot contenir informació desactualitzada. Si us plau, consulta la documentació més recent per obtenir la informació actualitzada.
Docker Swarm és una eina d'agrupació i planificació de contenidors Docker, és a dir, un clúster. Amb Swarm podem establir i gestionar un grup de nodes Docker com un únic sistema virtual. En aquest article crearem un servei Nginx replicat en 3 nodes. L'avantatge és que podem desplegar rèpliques molt fàcilment, de manera que podem escalar la nostra infraestructura quan ho necessitem.
Per a aquest article necessitarem 3 servidors amb Ubuntu 18.04, un serà el “Manager” des del qual controlarem les rèpliques (el Manager al seu torn farà de node) i els altres 2 servidors seran “Workers” (nodes); en podrem desplegar tants com necessitem. La idea és muntar la infraestructura següent:
Instal·lació i configuració dels servidors
El primer que farem és actualitzar el servidor i instal·lar Docker als 3 servidors.
# apt update
# apt upgrade
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# apt update
# apt-get install -y docker-ce
# systemctl start docker
# systemctl enable dockerConfigurarem els hosts (vi /etc/hosts) als 3 servidors amb:
46.183.119.183 manager01
185.166.212.200 worker01
185.166.212.203 worker02Configuració per a Manager
Aquest pas només l'executarem al servidor “manager01”:
# docker swarm init --advertise-addr 46.183.119.183Ens retornarà una ordre que és la que executarem al pas següent.
Configuració per a Workers
Aquest pas només l'executarem als servidors “worker01” i “worker02”; serveix per afegir els servidors a Swarm:
# docker swarm join --token SWMTKN-1-3dkep05rmz11kjqa3g4u9bil8s4kf69wrba8smtvmqnl74pajj-0ln4m6n43vgkx7flgxh7x9z4z 46.183.119.183:2377Swarm Visualizer
Aquest pas és opcional, ens permetrà veure des d'una interfície web els nostres nodes, contenidors, serveis, … L'executarem a “manager01”:
# apt install unzip
# wget https://github.com/dockersamples/docker-swarm-visualizer/archive/master.zip
# unzip master.zip
# mv docker-swarm-visualizer-master dockersamples
# docker run -it -d -p 5000:8080 -v /var/run/docker.sock:/var/run/docker.sock dockersamples/visualizerCreem un servei Nginx amb 3 rèpliques
Ara que ja ho tenim tot a punt, crearem el nostre servei de Nginx amb 3 rèpliques:
# docker service create --name mi-web --publish 8080:80 nginx
# docker service scale mi-web=3Si accedim des d'un navegador a la IP pública del manager01 pel port 5000 veurem Swarm Visualizer, en el nostre cas http://46.183.119.183:5000/
Ja hem arribat al final de l'article; l'avantatge d'utilitzar Swarm és que podem tenir una infraestructura escalable, podem crear més rèpliques dins d'un mateix node o afegir nodes en qualsevol moment. En el nostre exemple podrien ser diversos contenidors amb el servei Nginx entre els quals podríem distribuir la càrrega seguint aquest article.
Ho has provat? Deixa'ns els teus comentaris! 🙂