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 | ||