Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
info:libros:swarm [07/12/2021 12:48] – mate | info:libros:swarm [09/12/2021 01:58] (actual) – [capítulos] mate | ||
---|---|---|---|
Línia 1: | Línia 1: | ||
= Native Docker clustering with Swarm | = Native Docker clustering with Swarm | ||
{{tag> | {{tag> | ||
+ | * Autores: | ||
+ | * Fabrizio Soppelsa (Autor) | ||
+ | * Chanwit Kaewkasi (Autor) | ||
+ | * Editorial: Packt | ||
+ | * ISBN: 1786469758 | ||
+ | == capítulos | ||
* [[info: | * [[info: | ||
* [[info: | * [[info: | ||
Línia 14: | Línia 20: | ||
* [[info: | * [[info: | ||
- | == chap2: discovery services | + | == notas |
- | * necesidad de disponer de un servicio de descubrimiento para localizar aquello que buscas | + | === deprecated |
- | * con pocos nodos y configuraciones simples no sería necesario, tu sabes donde está todo aquello que necesitas | + | * <code bash>for i in `seq 0 3`; do docker-machine create -d virtualbox node$i; |
- | * con muchos nodos, cambiantes, y cientos de contenedores, | + | * <code bash> |
- | * existen muchos, pero todos ellos requieren: | + | * <code bash> |
- | * sistemas distribuidos en todos los nodos | + | * si ya existe un docker, lo securiza via TLS ¿? |
- | * escalables | + | |
- | * tolerancia a fallos | + | |
- | * registro | + | |
- | * anunciar | + | |
- | | + | |
- | * 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):< | ||
- | * '' | ||
- | |||
- | == chap3: docker swarm mode | ||
- | === swarmkit | ||
- | * " | ||
- | * Los cluster swarm está compuesto de nodos activos, que pueden actuar como managers o workers. | ||
- | * los managers, coordinados via Etcd (raft), elegidos entre todos, son responsables de reservar recursos, orquestrar servicios y repartir tareas a lo largo del cluster | ||
- | * los workers ejecutan las tareas. | ||
- | * Los servicios que se lanzan al cluster se convierten en tareas cuando llegan al worker | ||
- | * Los servicios no tienen porque ser contenedores. La intención del swarmkit es la de orquestrar cualquier objeto. | ||
- | * arquitectura: | ||
- | * número impar de nodos manager (evitar split-brain en las elecciones) | ||
- | * soporta cualquier tamaño de cluster de servicios | ||
- | * managers y workers | ||
- | * cualquier número de workers. | ||
- | * en los managers, los servicios se definen y se balancean. | ||
- | * {{ : | ||
- | * elección del mejor nodo para una tarea (**scheduling**) | ||
- | * {{ : | ||
- | * swarmd | ||
- | * usado para masters y slaves | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * cliente para operar con el cluster swarmkit | ||
- | * swarm mode (pag 88) |