bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


docker_swarm

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
docker_swarm [2021/12/04 12:13]
enrique_mieza_sanchez [Llençant un servei simple]
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?450 }} {{ docker-swarm-1.png?450 }}
  
-{{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker swarm contenidors lxc DevOps }}+{{tag> #FpInfor #Ciber #CiberMp03 #Ceti #CetiMp03 docker swarm contenidors lxc DevOps }}
  
-Referències:+==== Referències ====
   * [[Docker]]   * [[Docker]]
   * [[Docker-compose]]   * [[Docker-compose]]
Línia 15: Línia 16:
   * [[https://docs.docker.com/engine/swarm/swarm-mode/|Crear un swarm (doc oficial)]]   * [[https://docs.docker.com/engine/swarm/swarm-mode/|Crear un swarm (doc oficial)]]
   * [[https://docs.docker.com/engine/swarm/services/|Primers serveis]]   * [[https://docs.docker.com/engine/swarm/services/|Primers serveis]]
 +
 +Continua a:
 +  * [[Docker Swarm Stacks]]
 +
  
  
Línia 25: Línia 30:
 {{docker-swarm-arquitectura.png?direct}} {{docker-swarm-arquitectura.png?direct}}
  
-El Swarm es basa en **serveis que definirem mitjançant un docker-stack.yml**, molt similar a docker-compose, i replicarem segons convingui per augmentar les prestacions.+===== Stack ===== 
 + 
 +El Swarm es basa en **serveis que definirem mitjançant un docker-stack.yml**, molt similar a ''docker-compose'', i replicarem segons convingui per augmentar les prestacions.
  
 **Cada node disposa d'un //load balancer//** que ens permetrà accedir indistintament als serveis a través de qualsevol node. Els mateixos //load balancers// decidiran com redirigir el trànsit en base als valors interns de càrrega de la CPU dels nodes, etc. **Cada node disposa d'un //load balancer//** que ens permetrà accedir indistintament als serveis a través de qualsevol node. Els mateixos //load balancers// decidiran com redirigir el trànsit en base als valors interns de càrrega de la CPU dels nodes, etc.
Línia 86: Línia 93:
 end end
 </file> </file>
 +
 +==== Posada en marxa del Docker Swarm amb Vagrant ====
 +
 +Aixequeu les màquines virtuals descarregant el ''Vagrantfile'' amb
 +  $ 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://www.virtualbox.org/manual/ch06.html#network_hostonly|Virtualbox fa va fixar un rang per a xarxes privades]] que només permet de la 192.168.56.x a la 192.168.64.x).
 +
 +Per poder superar aquesta limitació, la documentació indica que creem un arxiu a ''/etc/vbox/networks.conf'' amb els rangs permesos (ni la carpeta ni l'arxiu existeixen a la instal·lació d'Ubuntu, pel què caldrà crear-los). El següent contingut (asterisc inclòs) permet qualsevol rang de IPs:
 +<code>* 0.0.0.0/0 ::/0</code>
 +</WRAP>
  
 \\ \\
  
-===== Crear un swarm =====+===== Crear un swarm manualment =====
  
 <WRAP todo> <WRAP todo>
Línia 123: Línia 148:
 Pots consultar les opcions disponibles per a la comanda [[https://docs.docker.com/engine/reference/commandline/service_update/|docker service update]]. Pots consultar les opcions disponibles per a la comanda [[https://docs.docker.com/engine/reference/commandline/service_update/|docker service update]].
 </WRAP> </WRAP>
 +
 +===== Escalant el servei =====
  
 Mirem a quin port del Swarm s'ha publicat: Mirem a quin port del Swarm s'ha publicat:
Línia 135: 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 //browser//, a través del port que t'hagi marcat Docker Swarm. 
 +  * Quina és la IP del container? 
 +  * Canvia la IP si fem CTRL+F5 repetidament ? 
 +  * Què passa si accedeixes a través d'un ''curl'' enlloc de amb el //browser//? Es comporta igual? 
 +  * Perquè creus que es comporten diferentment per //browser// i amb la comanda ''curl''? 
 +</WRAP> 
 + 
 +==== Tot en una línia ====
  
-Destruim el servei:+Destruïm el servei:
   $ docker service rm hello   $ docker service rm hello
  
Línia 157: Línia 198:
  
 Per canviar les restriccions i permetre que corri en qualsevol node: Per canviar les restriccions i permetre que corri en qualsevol node:
 +  $ docker service update --constraint-rm "node.role == worker" cluster1
   $ docker service scale cluster1=7   $ docker service scale cluster1=7
  
Línia 167: Línia 209:
  
 <WRAP todo> <WRAP todo>
-Tomba un contenidor (amb docker rm -f, per exemple).+Anem a simular que un contenidor cau (per exemple per un error d'execució): 
 +  * Tomba un contenidor amb ''docker rm -f''
  
-Comprova com es comporta el sistema. Quantes rèpliques hi ha actualment?+Comprova com es comporta el sistema. 
 +  * Quantes rèpliques hi ha actualment
 +  * S'ha mantingut el nombre de rèpliques o no?
 </WRAP> </WRAP>
  
Línia 176: Línia 221:
 ===== Treballant amb stacks ===== ===== Treballant amb stacks =====
  
-Els //stacks// son arxius de configuració de serveis per a Docker Swarm, amb la mateixa sintaxi que el ''docker-compose'' però amb alguns paràmetres afegits. +Pots seguir treballant amb Stacks de Docker Swarm [[docker swarm stacks]].
- +
-docker stack deploy --compose-file hello.stack.yml hello +
-docker stack deploy -c hello.stack.yml hello +
-docker stack scale hello_web=3 +
  
 \\ \\
  
docker_swarm.1638620025.txt.gz · Darrera modificació: 2021/12/04 12:13 per enrique_mieza_sanchez