Como usar o comando docker swarm join para adicionar nós

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como adicionar nós a um Docker Swarm existente usando o comando docker swarm join. Abordaremos o processo de ingressar um nó como um worker (trabalhador), que executa tarefas atribuídas pelos managers (gerenciadores), e como um manager, que participa do gerenciamento do swarm.

Você também explorará a flag --availability e entenderá como usá-la ao ingressar nós para controlar sua disponibilidade inicial dentro do swarm. Este laboratório prático fornecerá experiência com as etapas essenciais para expandir seu cluster Docker Swarm.

Juntar um nó ao swarm como worker

Nesta etapa, aprenderemos como juntar um nó a um Docker Swarm existente como um worker. Um nó worker é uma máquina que executa os serviços implantados no swarm. Ele recebe e executa as tarefas atribuídas pelos nós manager.

Antes de juntar um nó a um swarm, você precisa ter um nó manager do Docker Swarm em execução. Para este laboratório, assumimos que um swarm já está inicializado e que você possui o join token para nós worker.

Primeiro, vamos simular ter um join token. Em um cenário real, você obteria este token do nó manager usando o comando docker swarm join-token worker. Para este laboratório, usaremos um token de espaço reservado.

Vamos supor que o comando de join fornecido pelo manager seja semelhante a este:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Neste comando:

  • docker swarm join: Este é o comando para juntar um nó a um swarm.
  • --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef: Este é o token único que autentica o nó no swarm.
  • --advertise-addr <THIS_NODE_IP>: Esta flag especifica o endereço IP que o nó que está ingressando usará para se anunciar para outros nós no swarm. Substitua <THIS_NODE_IP> pelo endereço IP real do nó que você está ingressando.
  • <MANAGER_IP>:2377: Este é o endereço de um nó manager no swarm. O nó que está ingressando se conecta a este endereço para ingressar no swarm. Substitua <MANAGER_IP> pelo endereço IP real de um nó manager. A porta padrão do swarm é 2377.

Como estamos trabalhando em um ambiente de VM único para este laboratório, simularemos o processo de join usando um comando simplificado. Usaremos 127.0.0.1 como o IP do manager e um token de espaço reservado.

Execute o seguinte comando para simular a entrada no swarm como um worker. Observe que este comando não entrará realmente em um swarm real nesta configuração de VM única, mas demonstra a estrutura do comando.

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef 127.0.0.1:2377

Você deve ver uma saída indicando que o nó está tentando entrar no swarm. Em um cenário real, se a entrada for bem-sucedida, você veria uma mensagem como "This node joined a swarm as a worker." (Este nó entrou em um swarm como um worker.)

Juntar um nó ao swarm como manager

Nesta etapa, aprenderemos como juntar um nó a um Docker Swarm existente como um manager. Os nós manager lidam com tarefas de gerenciamento do swarm, como manter o estado do swarm, agendar serviços e lidar com operações em todo o swarm. Um swarm pode ter vários nós manager para alta disponibilidade.

Semelhante a ingressar como um worker, você precisa de um join token de um nó manager existente para ingressar como um manager. O comando para obter o join token do manager de um nó manager existente é docker swarm join-token manager.

Vamos supor que o comando de join para um nó manager seja semelhante a este:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Observe que a estrutura do comando é a mesma de ingressar como um worker, mas o token é diferente. O token para ingressar em um nó manager é único e concede privilégios mais altos.

Para este laboratório, simularemos novamente o processo de join em nosso ambiente de VM único usando um token de manager de espaço reservado e 127.0.0.1 como o IP do manager.

Execute o seguinte comando para simular a entrada no swarm como um manager:

docker swarm join --token SWMTKN-1-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0987654321fedcba 127.0.0.1:2377

Você deve ver uma saída indicando que o nó está tentando entrar no swarm. Em um swarm real de vários nós, se a entrada for bem-sucedida, você veria uma mensagem como "This node joined a swarm as a manager." (Este nó entrou em um swarm como um manager.)

Entender e usar a flag --availability ao juntar-se

Nesta etapa, exploraremos a flag --availability, que pode ser usada ao ingressar um nó em um Docker Swarm. A flag --availability controla se um nó está disponível para agendamento de tarefas. Isso é particularmente útil para gerenciar a manutenção do nó ou tirar temporariamente um nó do serviço sem removê-lo do swarm.

A flag --availability pode assumir um dos três valores:

  • active: O nó está disponível para agendamento de tarefas. Este é o estado padrão para um nó recém-ingressado.
  • pause: O nó não receberá novas tarefas, mas as tarefas existentes continuarão a ser executadas.
  • drain: O nó não receberá novas tarefas, e as tarefas existentes serão desligadas e reagendadas em outros nós disponíveis.

Ao ingressar em um nó, você pode especificar sua disponibilidade inicial. Por exemplo, para ingressar em um nó como um worker com sua disponibilidade definida como drain, você usaria um comando como este:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Para este laboratório, simularemos a entrada de um nó com a flag --availability drain. Novamente, usaremos um token de espaço reservado e 127.0.0.1 como o IP do manager em nosso ambiente de VM único.

Execute o seguinte comando para simular a entrada no swarm com a disponibilidade definida como drain:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain 127.0.0.1:2377

Você deve ver a saída indicando que o nó está tentando ingressar. Em um swarm real, o nó ingressaria com sua disponibilidade definida como drain, o que significa que ele não seria agendado para novas tarefas e as tarefas existentes seriam movidas.

Resumo

Neste laboratório, aprendemos como usar o comando docker swarm join para adicionar nós a um Docker Swarm existente. Exploramos o processo de ingressar um nó como um worker, entendendo o papel do join token, o endereço do manager e a flag --advertise-addr. Também examinamos como ingressar um nó como um manager, o que requer um join token diferente obtido do nó manager. Finalmente, aprendemos sobre a flag --availability e como ela pode ser usada durante o processo de join para controlar a disponibilidade inicial de um nó dentro do swarm.