Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
docker_swarm [2021/12/02 08:08] enrique_mieza_sanchez [Crear un Swarm mínim amb Vagrantfile] |
docker_swarm [2022/11/15 19:08] (actual) enric_mieza_sanchez |
||
---|---|---|---|
Línia 1: | Línia 1: | ||
+ | ~~REVEAL~~ | ||
====== Docker Swarm ====== | ====== Docker Swarm ====== | ||
Línia 7: | Línia 8: | ||
{{ docker-swarm-1.png? | {{ docker-swarm-1.png? | ||
- | {{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker swarm contenidors lxc DevOps }} | + | {{tag> |
- | Referències: | + | ==== Referències |
* [[Docker]] | * [[Docker]] | ||
* [[Docker-compose]] | * [[Docker-compose]] | ||
Línia 15: | Línia 16: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | Continua a: | ||
+ | * [[Docker Swarm Stacks]] | ||
+ | |||
Línia 23: | Línia 28: | ||
* **// | * **// | ||
- | {{docker-swarm-arquitectura.png}} | + | {{docker-swarm-arquitectura.png?direct}} |
+ | |||
+ | ===== Stack ===== | ||
- | El Swarm es basa en **serveis que definirem mitjançant un docker-stack.yml**, | + | El Swarm es basa en **serveis que definirem mitjançant un docker-stack.yml**, |
**Cada node disposa d'un //load balancer// | **Cada node disposa d'un //load balancer// | ||
- | {{docker-swarm-3-nodes.png}} | + | {{docker-swarm-3-nodes.png?direct}} |
\\ | \\ | ||
Línia 86: | Línia 93: | ||
end | end | ||
</ | </ | ||
+ | |||
+ | ==== Posada en marxa del Docker Swarm amb Vagrant ==== | ||
+ | |||
+ | Aixequeu les màquines virtuals descarregant el '' | ||
+ | $ vagrant up | ||
+ | |||
+ | Per veure els nodes creats podem fer: | ||
+ | $ vagrant status | ||
+ | |||
+ | Connectar-se al manager: | ||
+ | $ vagrant ssh manager | ||
+ | |||
+ | <WRAP important> | ||
+ | Si teniu problemes amb les IPs que Vagrant vol assignar als nodes (10.100.199.x) probablement sigui perquè [[https:// | ||
+ | |||
+ | Per poder superar aquesta limitació, la documentació indica que creem un arxiu a ''/ | ||
+ | < | ||
+ | </ | ||
\\ | \\ | ||
- | ===== Crear un swarm ===== | + | ===== Crear un swarm manualment |
<WRAP todo> | <WRAP todo> | ||
Línia 119: | Línia 144: | ||
Actualitzem la configuració del servei, publicant el port 80 del Nginx: | Actualitzem la configuració del servei, publicant el port 80 del Nginx: | ||
$ docker service update --publish-add 80 hello | $ docker service update --publish-add 80 hello | ||
+ | |||
+ | <WRAP tip> | ||
+ | Pots consultar les opcions disponibles per a la comanda [[https:// | ||
+ | </ | ||
+ | |||
+ | ===== Escalant el servei ===== | ||
Mirem a quin port del Swarm s'ha publicat: | Mirem a quin port del Swarm s'ha publicat: | ||
Línia 131: | Línia 162: | ||
$ docker service scale hello=7 | $ docker service scale hello=7 | ||
- | Inspecciona els nodes per veure com s'han repartit les instàncies. Quin node en té més? Us surt la mateixa distribució amb els altres companys? | + | ==== Exercici ==== |
+ | <WRAP todo> | ||
+ | Inspecciona els nodes per veure com s'han repartit les instàncies. | ||
+ | * Quin node en té més? | ||
+ | * Us surt la mateixa distribució amb els altres companys? | ||
+ | * El node manager executa alguna instància o només fa de manager? | ||
+ | |||
+ | Accedeix a la web del servei hello amb un // | ||
+ | * Quina és la IP del container? | ||
+ | * Canvia la IP si fem CTRL+F5 repetidament ? | ||
+ | * Què passa si accedeixes a través d'un '' | ||
+ | * Perquè creus que es comporten diferentment per //browser// i amb la comanda '' | ||
+ | </ | ||
+ | |||
+ | ==== Tot en una línia ==== | ||
- | Destruim | + | Destruïm |
$ docker service rm hello | $ docker service rm hello | ||
Línia 139: | Línia 184: | ||
$ docker service create --name hello --publish published=8888, | $ docker service create --name hello --publish published=8888, | ||
+ | Podem veure les IPs de cada container amb '' | ||
+ | $ docker ps | ||
+ | $ docker inspect < | ||
+ | $ docker inspect $(docker service ps -q hello) | grep -i -A 2 address | ||
- | - ver IPs del container | + | ==== Serveis amb restriccions ==== |
- | docker inspect bzl m66 pqo | grep -i -A 2 add | + | |
- | docker inspect $(docker service ps -q hello) | grep -i -A 2 add | + | |
+ | Si volem restringir els nodes on corre el contenidor als nodes //worker// (i que no corri als // | ||
+ | $ docker service create --name cluster1 --constraint " | ||
- | - tirar un nodo | + | Comprova-ho amb: |
- | - comprobar como actua el swarm | + | $ docker service ps cluster1 |
- | - | + | |
+ | Per canviar les restriccions i permetre que corri en qualsevol node: | ||
+ | $ docker service update --constraint-rm " | ||
+ | $ docker service scale cluster1=7 | ||
- | STACK | + | Comprova-ho amb: |
+ | $ docker service ps cluster1 | ||
- | docker stack deploy --compose-file hello.stack.yml hello | + | \\ |
- | docker stack deploy -c hello.stack.yml hello | + | |
- | docker stack scale hello_web=3 | + | |
+ | ==== Exercici ==== | ||
+ | <WRAP todo> | ||
+ | Anem a simular que un contenidor cau (per exemple per un error d' | ||
+ | * Tomba un contenidor amb '' | ||
+ | Comprova com es comporta el sistema. | ||
+ | * Quantes rèpliques hi ha actualment? | ||
+ | * S'ha mantingut el nombre de rèpliques o no? | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Treballant amb stacks ===== | ||
+ | |||
+ | Pots seguir treballant amb Stacks de Docker Swarm [[docker swarm stacks]]. | ||
+ | |||
+ | \\ | ||