Introdução
Este tutorial guiará você pelo processo de adicionar um nó de trabalho a um cluster Docker Swarm. Ao final deste artigo, você compreenderá como configurar e gerenciar um ambiente Docker Swarm e como adicionar perfeitamente novos nós ao seu cluster para escalar suas aplicações containerizadas.
Introdução ao Docker Swarm
Docker Swarm é uma solução nativa de agrupamento e orquestração para contêineres Docker. Permite gerenciar um grupo de hosts Docker e implantar aplicações neles, proporcionando alta disponibilidade, balanceamento de carga e escalabilidade.
O que é o Docker Swarm?
Docker Swarm é um recurso embutido do Docker Engine que permite agrupar vários hosts Docker em um único host Docker virtual. Isso permite gerenciar e escalar suas aplicações containerizadas em vários hosts, proporcionando tolerância a falhas e alta disponibilidade.
Conceitos-chave no Docker Swarm
- Swarm: Um Swarm é um grupo de hosts Docker (físicos ou virtuais) que estão executando o Docker Engine e se uniram para formar um cluster.
- Nó: Um Nó é um único host Docker que faz parte de um Swarm. Os nós podem ser Gerenciadores ou Trabalhadores.
- Nó Gerenciador: Os Nós Gerenciadores são responsáveis por gerenciar o estado do Swarm, agendar tarefas e manter o estado desejado do cluster.
- Nó Trabalhador: Os Nós Trabalhadores são responsáveis por executar os contêineres reais conforme direcionado pelos Nós Gerenciadores.
- Serviço: Um Serviço é uma forma declarativa de definir como uma aplicação deve ser implantada e escalada em todo o Swarm.
graph TD
A[Host Docker] --> B[Host Docker]
B[Host Docker] --> C[Host Docker]
C[Host Docker] --> D[Host Docker]
D[Host Docker] --> A[Host Docker]
A --- E[Nó Gerenciador]
B --- F[Nó Trabalhador]
C --- G[Nó Trabalhador]
D --- H[Nó Trabalhador]
Benefícios do Docker Swarm
- Alta Disponibilidade: O Docker Swarm fornece balanceamento de carga e failover automáticos, garantindo que suas aplicações estejam altamente disponíveis.
- Escalabilidade: Você pode facilmente escalar suas aplicações para cima ou para baixo adicionando ou removendo nós do Swarm.
- Simplicidade: O Docker Swarm é um recurso embutido do Docker Engine, tornando-o fácil de configurar e gerenciar.
- Integração: O Docker Swarm integra-se perfeitamente com outras ferramentas e serviços Docker, como Docker Compose e Docker Registry.
Configurando um Cluster Docker Swarm
Pré-requisitos
Antes de configurar um cluster Docker Swarm, certifique-se de ter o seguinte:
- Pelo menos dois hosts Ubuntu 22.04 (físicos ou virtuais) com o Docker Engine instalado.
- Acesso SSH aos hosts.
Passo 1: Inicializar o Swarm
Em um dos hosts, execute o seguinte comando para inicializar o Swarm:
docker swarm init --advertise-addr <HOST_IP_ADDRESS>
Substitua <HOST_IP_ADDRESS> pelo endereço IP do host.
Este comando exibirá um token de junção que você usará para adicionar outros nós ao Swarm.
Passo 2: Adicionar Nós Trabalhadores ao Swarm
Nos outros hosts, execute o comando fornecido no passo anterior para se juntar ao Swarm como um nó trabalhador:
docker swarm join --token <TOKEN> <HOST_IP_ADDRESS>:2377
Substitua <TOKEN> pelo token fornecido pela inicialização do Swarm e <HOST_IP_ADDRESS> pelo endereço IP do nó Gerenciador.
Passo 3: Verificar o Swarm
Execute o seguinte comando no nó Gerenciador para visualizar os nós no Swarm:
docker node ls
Você deve ver o nó Gerenciador e os nós Trabalhadores na saída.
Passo 4: Implantar um Serviço
Para testar sua configuração do Swarm, implante um serviço simples:
docker service create --name nginx --publish 80:80 nginx
Isso criará um serviço chamado "nginx" e o implantará em todo o Swarm.
graph TD
A[Nó Gerenciador] --> B[Nó Trabalhador]
B[Nó Trabalhador] --> C[Nó Trabalhador]
C[Nó Trabalhador] --> A[Nó Gerenciador]
A -- "docker swarm init" --> D[Swarm]
B -- "docker swarm join" --> D[Swarm]
C -- "docker swarm join" --> D[Swarm]
D -- "docker service create" --> E[Serviço Nginx]
Adicionando um Nó Trabalhador ao Swarm
Pré-requisitos
Antes de adicionar um nó Trabalhador ao Swarm, certifique-se de ter o seguinte:
- Um cluster Docker Swarm em execução com pelo menos um nó Gerenciador.
- Acesso SSH ao host que você deseja adicionar como um nó Trabalhador.
Passo 1: Obter o Comando de Junção
No nó Gerenciador, execute o seguinte comando para obter o comando de junção para um nó Trabalhador:
docker swarm join-token worker
Isso exibirá um comando semelhante ao seguinte:
docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s7p15g43pits9-8y0wywnrwwt7a4vox4vx9v68r 192.168.0.16:2377
Passo 2: Juntar-se ao Swarm como um Nó Trabalhador
No host que você deseja adicionar como um nó Trabalhador, execute o comando obtido no passo anterior:
docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s7p15g43pits9-8y0wywnrwwt7a4vox4vx9v68r 192.168.0.16:2377
Isso adicionará o host ao Swarm como um nó Trabalhador.
Passo 3: Verificar se o Nó se Juntou ao Swarm
No nó Gerenciador, execute o seguinte comando para listar os nós no Swarm:
docker node ls
Você deve ver o novo nó Trabalhador na saída.
graph TD
A[Nó Gerenciador] --> B[Nó Trabalhador]
B[Nó Trabalhador] --> C[Nó Trabalhador]
C[Nó Trabalhador] --> A[Nó Gerenciador]
A -- "docker swarm join-token worker" --> D[Comando de Junção]
B -- "docker swarm join" --> A[Nó Gerenciador]
Seguindo esses passos, você pode facilmente adicionar um novo nó Trabalhador ao seu cluster Docker Swarm, expandindo a capacidade e a resiliência de suas aplicações containerizadas.
Resumo
Neste tutorial do Docker, você aprendeu a configurar um cluster Docker Swarm e adicionar um nó trabalhador a ele. Ao adicionar novos nós ao seu Swarm, você pode escalar facilmente suas aplicações baseadas em Docker e criar um ambiente distribuído e altamente disponível. Com o conhecimento adquirido neste guia, você agora pode gerenciar e expandir sua infraestrutura Docker Swarm com confiança para atender às suas crescentes necessidades de negócios.



