====== Swarm ====== ===== Criando um cluster swarm ===== Para construir um cluster swarm você vai precisar de: * Um ou mais nós (máquina virtual ou física) em rede (virtual ou física). * Um volume NFS a ser compartilhado entre os nós em um mesmo ponto de montagem. Passo a passo: - Instale o Docker em cada nó. - Monte o volume NFS em ''/share'' em cada nó. - Instale o plugin Docker ''local-persist'' em cada nó. [[https://github.com/MatchbookLab/local-persist#quick-way|instruções]] - Ative o modo swarm no nó líder. Para isso rode ''docker swarm init''. Anote a saída desse comando. Ela dará as orientações para realizar a entrada dos demais nós no swarm. - Registre os demais nós no swarm do líder. Siga as orientações obtidas do comando ''docker swarm init'' executado no líder. - Registre esse cluster swarm no portainer. O portainer possui assistentes para ambientes docker. [[https://portainer.tic.ufrj.br/#!/wizard/endpoints/create?envType=docker|Ir para o Portainer]] TODO: Expandir discussão. O plugin ''local-persist'' permite que sejam criados volumes Docker fora do ''/var/lib/docker/volumes'', ou seja, no ''/share''. ===== Volumes ===== Os volumes docker são privados em cada nó. Ou seja, são criados no nó que o container subir. Se o container cair de um nó e subir em outro, outro volume será criado naquele novo nó. TODO: Exemplos Precisamos de volumes compartilhados entre os nós, de modo que se um container no nó A cair e subir no nó B ele encontre em B o mesmo volume que havia em A. TODO: Exemplos Obtemos isso especificando que o volume do container deve residir no host em ''/share''. O ''/share'' deve ser uma montagem NFS existente em todos os nó do cluster. O Docker não permite volumes fora de ''/var/lib/docker/volumes''. Para conseguirmos especificar o local onde o volume reside no host usamos o ''local-persist''.