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 20:23]
enrique_mieza_sanchez [Docker Swarm]
docker_swarm [2026/09/16 13:22] (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]]
   * [[Dockerfile]]   * [[Dockerfile]]
 +  * [[Vagrant]]
   * [[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]]
Línia 29: Línia 31:
 {{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 38: Línia 42:
  
 ===== Crear un Swarm mínim amb Vagrantfile ===== ===== Crear un Swarm mínim amb Vagrantfile =====
 +
 +L'eina [[Vagrant]] ens serà de molta utilitat aquí per crear les VMs i clusteritzar-les en un Swarm de forma automatitzada.
  
 Aquest Vagrantfile et crearà un Docker Swarm amb 1 //manager// i 2 //workers// (el //manager// també accepta tasques de //worker//). Aquest Vagrantfile et crearà un Docker Swarm amb 1 //manager// i 2 //workers// (el //manager// també accepta tasques de //worker//).
Línia 90: Línia 96:
 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 127: Línia 151:
 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 139: Línia 165:
   $ docker service scale hello=7   $ docker service scale hello=7
  
 +==== Exercici ====
 <WRAP todo> <WRAP todo>
 Inspecciona els nodes per veure com s'han repartit les instàncies. Inspecciona els nodes per veure com s'han repartit les instàncies.
Línia 144: Línia 171:
   * Us surt la mateixa distribució amb els altres companys?   * Us surt la mateixa distribució amb els altres companys?
   * El node manager executa alguna instància o només fa de manager?   * 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> </WRAP>
 +
 +==== Tot en una línia ====
  
 Destruïm el servei: Destruïm el servei:
Línia 177: Línia 212:
  
 <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>
  
docker_swarm.1638649388.txt.gz · Darrera modificació: 2021/12/04 20:23 per enrique_mieza_sanchez