Bom, para esse artigo vamos usar:
- 03 Server com Rocky Linux 8.4
- 2 GB de Memória
- 20 GB de Disco
Após a instalação do Rocky Linux e sua atualização, vamos desativar o SELinux e também o Firewalld.
Desative o SELinux nos 3 Server:
# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Desative o Firewalld nos 3 servers:
# systemctl disable firewalld
E reinicie os 3 servers:
# reboot
Agora vamos instalar o Docker CE nos 3 hosts.
Instale ou atualize o
yum-utils:
# dnf install yum-utils -y
Adicione o repo do Docker-CE:
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Instale o Docker-CE:
# dnf install docker-ce docker-ce-cli containerd.io -y
Inicie o docker:
# systemctl start docker
Caso queira ativar na inicialização:
# systemctl enable docker
Já temos o Docker instalado nos 3 servers.
Feito isso, agora vamos iniciar nosso cluster Swarm.
No server 1, vamos iniciar o Swarm:
# docker swarm init
Ele iniciou como o Manager e para adicionar os worker, é só copiar o token e adicionar nos outros 2 servers.
Vamos adicionar o server 2 no cluster. No Server 2 digita o token que foi gerado:
# docker swarm join --token SWMTKN-1-5ecfjtxv4la14zjnhu1esaks4ex91q70h2owyg9cxe7k1g4wrd-4ainbvuv4snwk7dux2c53xehd 192.168.122.137:2377
No server3 a mesma coisa:
# docker swarm join --token SWMTKN-1-5ecfjtxv4la14zjnhu1esaks4ex91q70h2owyg9cxe7k1g4wrd-4ainbvuv4snwk7dux2c53xehd 192.168.122.137:2377
Agora no Server de Manager vamos verificar se está ok o nosso cluster:
# docker node ls
E nosso cluster está no ar.
Caso queira visualizar de uma maneira mais visual, use o Docker Swarm visualizer.
Rode o comando:
# docker service create \
--name=viz \
--publish=8080:8080/tcp \
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
dockersamples/visualizer
Depois, só acessar via browser: http://<IP>:8080
Outra ferramenta que ajuda muito é o Portainer, esse eu recomendo fortemente o uso, facilita muito.
Baixe o arquivo:
# curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
Execute o deploy:
# docker stack deploy -c portainer-agent-stack.yml portainer
e acesse agora:
http://<ip ou nome>:9000
Ao acessar defina a senha de admin:
Agora só usar:
Como tem o visualizer rodando, o portainer também utiliza ele para de mostrar visualmente, e isso facilita muito.
Bom, espero que ajude.