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ó

info:libros:swarm:chap2 [07/12/2021 12:49] – creat mateinfo:libros:swarm:chap2 [07/12/2021 12:50] (actual) mate
Línia 1: Línia 1:
-= [native docker clustering with swarm] Discover tre Discovery Services+= [native docker clustering with swarm] Discover the Discovery Services 
 +==discovery services 
 +    * necesidad de disponer de un servicio de descubrimiento para localizar aquello que buscas 
 +      * con pocos nodos y configuraciones simples no sería necesario, tu sabes donde está todo aquello que necesitas 
 +      * con muchos nodos, cambiantes, y cientos de contenedores, es imposible de gestionar (cambian dinámicamente de IP, por ejemplo) 
 +    * existen muchos, pero todos ellos requieren: 
 +      * sistemas distribuidos en todos los nodos 
 +      * escalables 
 +      * tolerancia a fallos 
 +      * registro 
 +      * anunciar 
 +      * almacenaje key-value 
 +    * swarm v1 
 +      * no integra uno propio 
 +      * integrar el tuyo propio a través de //libkv// 
 +      * token 
 +      * Consul 
 +      * Etcd (se ha acabado integrando) 
 +      * ZooKeeper 
 + 
 +=== token 
 +  * ''docker run ... token:%%//%%$TOKEN'' 
 +  * requiere conexión a internet de los nodos y acceso a Docker Hub 
 +  * se ha de generar un UUID de swarm (''swarm create''
 +  * se utiliza para unir nodos y hablar con el manager 
 +  * se acabará deprecando 
 + 
 +=== raft 
 +  * algoritmo para consensuar en sistemas distribuidos la elección del lider y la consistencia de los valores 
 +  * otro: paxos (más complejo y difícil de comprender) 
 +  * raft: Consul, Etcd 
 +  * paxos: ZooKeeper 
 +  * [[https://ramcloud.stanford.edu/raft.pdf]] 
 + 
 +==== teoría de funcionamiento 
 +  * simplicidad 
 +  * mensajes y logs son solo envíados del lider del cluster a sus miembros 
 +  * un cluster basado en este algoritmo debería mantenerse replicado de una manera consistente, indistintamente de lo que pase: nevos nodos, caída de otros 
 +  * número impar de nodos (para evitar split-brains) 
 +  * en condiciones normales, hay un lider que mantiene informados a los seguidores de su estado (heartbeat). Si e lider, falla, los seguidores entienden que ha caído y buscan un nuevo lider (de manera consensuada) 
 +  * los mensajes, antes de ser guardados en el registro principal del lider, son enviados a los seguidores y sólo cuando una mayoría ha confirmado su recepción, este es guardado. 
 + 
 +=== Etcd 
 +  * sistema de descubrimiento y compartición de configuración, en alta disponibilidad, distribuido y consistente key-value 
 +  * soporta la caída de nodos (incluso el master), tiene un sistemna de elección de master. 
 +  * los contenedores pueden leer y escribir en el almacen de Etcd 
 +  * :2379 (comunicaciones cliente) 
 +  * :2380 (comunicaciones master) 
 +  * :4001 
 +  * ''etcdctl cluster-health'' 
 +  * swarm v1 (lanzando servicio swarm como comentenedor y enlanzando con un cluster etcd previo):<code>docker run -d -p 3376:3376 swarm manage -H tcp://0.0.0.0:3376 etcd://$(docker-machine ip etcd-m)/swarm</code> 
 +  * ''docker run swarm list etcd:%%//%%$(docker-machine ip etcdm):2379'' 
 + 
 +=== ZooKeeper 
 +=== Consul
  • info/libros/swarm/chap2.1638910172.txt.gz
  • Darrera modificació: 07/12/2021 12:49
  • per mate