Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
info:libros:swarm:chap2 [07/12/2021 12:49] – creat mate | info:libros:swarm:chap2 [07/12/2021 12:50] (actual) – mate | ||
---|---|---|---|
Línia 1: | Línia 1: | ||
- | = [native docker clustering with swarm] Discover | + | = [native docker clustering with swarm] Discover |
+ | ==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, | ||
+ | * 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 | ||
+ | * '' | ||
+ | * requiere conexión a internet de los nodos y acceso a Docker Hub | ||
+ | * se ha de generar un UUID de swarm ('' | ||
+ | * 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:// | ||
+ | |||
+ | ==== 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, | ||
+ | * 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, | ||
+ | * 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 | ||
+ | * '' | ||
+ | * swarm v1 (lanzando servicio swarm como comentenedor y enlanzando con un cluster etcd previo):< | ||
+ | * '' | ||
+ | |||
+ | === ZooKeeper | ||
+ | === Consul |