Como usar o comando docker node update para gerenciar nós do Swarm

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como gerenciar nós do Docker Swarm usando o comando docker node update. Você explorará várias funcionalidades deste comando, incluindo a atualização da disponibilidade do nó para controlar a alocação de tarefas, a adição e remoção de rótulos para categorizar nós para restrições de agendamento de tarefas e a alteração da função de um nó dentro do swarm.

Através de exercícios práticos, você praticará a pausa de um nó para evitar novas tarefas, a adição de rótulos únicos e múltiplos aos nós, a remoção de rótulos existentes e a promoção de um nó worker para uma função de manager. Essas etapas fornecerão experiência prática no gerenciamento do estado e dos atributos dos nós em um cluster Docker Swarm.

Atualizar a disponibilidade do nó para pause

Nesta etapa, aprenderemos como atualizar a disponibilidade de um nó em um Docker Swarm. A disponibilidade do nó determina se um nó pode receber novas tarefas. Os estados de disponibilidade possíveis são active (ativo), pause (pausar) e drain (drenar).

  • active: O nó pode receber novas tarefas. Este é o estado padrão.
  • 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 interrompidas e reagendadas em outros nós.

Vamos alterar a disponibilidade do nó atual para pause. Primeiro, precisamos encontrar o ID do nó atual. Podemos usar o comando docker node ls para listar os nós no swarm.

docker node ls

A saída mostrará uma lista de nós, incluindo seus IDs, hostname, status, disponibilidade e status do manager. Identifique o ID do nó onde você está trabalhando atualmente.

Agora, use o comando docker node update com a flag --availability pause e o ID do nó para alterar a disponibilidade do nó. Substitua <node_id> pelo ID real do seu nó.

docker node update --availability pause <node_id>

Após executar o comando, você pode verificar a alteração executando docker node ls novamente. A disponibilidade do seu nó agora deve ser pause.

docker node ls

Adicionar um rótulo a um nó

Nesta etapa, aprenderemos como adicionar um rótulo a um nó em um Docker Swarm. Rótulos (labels) são pares chave-valor que você pode anexar aos nós. Eles são úteis para organizar e selecionar nós com base em critérios específicos, que podem ser usados para restrições de alocação de tarefas.

Vamos adicionar um rótulo chamado env com o valor dev ao nó atual. Primeiro, certifique-se de ter o ID do nó da etapa anterior. Caso contrário, você pode obtê-lo novamente usando docker node ls.

docker node ls

Agora, use o comando docker node update com a flag --label-add, o rótulo no formato chave=valor e o ID do nó. Substitua <node_id> pelo ID real do seu nó.

docker node update --label-add env=dev <node_id>

Após adicionar o rótulo, você pode inspecionar o nó para ver o rótulo adicionado. Use o comando docker node inspect seguido pelo ID do nó.

docker node inspect <node_id>

Procure a seção Labels na saída. Você deve ver o rótulo env: dev listado lá.

Adicionar múltiplos rótulos a um nó

Nesta etapa, aprenderemos como adicionar múltiplos rótulos a um nó simultaneamente. Você pode adicionar múltiplos rótulos repetindo a flag --label-add para cada rótulo que deseja adicionar.

Vamos adicionar dois novos rótulos ao nó atual: tier com o valor frontend e region com o valor us-east. Certifique-se de ter o ID do nó das etapas anteriores.

Use o comando docker node update com múltiplas flags --label-add e o ID do nó. Substitua <node_id> pelo ID real do seu nó.

docker node update --label-add tier=frontend --label-add region=us-east <node_id>

Após adicionar os rótulos, inspecione o nó novamente para verificar se todos os rótulos foram adicionados corretamente.

docker node inspect <node_id>

Na seção Labels da saída, você agora deve ver env: dev, tier: frontend e region: us-east.

Remover um rótulo de um nó

Nesta etapa, aprenderemos como remover um rótulo de um nó em um Docker Swarm. Você pode remover um rótulo usando o comando docker node update com a flag --label-rm seguida pela chave do rótulo.

Vamos remover o rótulo region que adicionamos na etapa anterior. Certifique-se de ter o ID do nó.

Use o comando docker node update com a flag --label-rm e a chave do rótulo (region), seguido pelo ID do nó. Substitua <node_id> pelo ID real do seu nó.

docker node update --label-rm region <node_id>

Após remover o rótulo, inspecione o nó novamente para verificar se o rótulo foi removido.

docker node inspect <node_id>

Na seção Labels da saída, você agora deve ver env: dev e tier: frontend, mas o rótulo region: us-east deve ter desaparecido.

Atualizar a função do nó para 'manager'

Nesta etapa, aprenderemos como atualizar a função de um nó em um Docker Swarm. Um nó pode ter uma de duas funções: manager ou worker. Os nós manager lidam com as tarefas de gerenciamento do swarm, enquanto os nós worker executam serviços.

Vamos promover o nó atual para a função de manager. Certifique-se de ter o ID do nó.

Use o comando docker node update com a flag --role manager e o ID do nó. Substitua <node_id> pelo ID real do seu nó.

docker node update --role manager <node_id>

Após atualizar a função, verifique a alteração listando os nós.

docker node ls

A saída agora deve mostrar a função do seu nó como Manager.

Resumo

Neste laboratório, aprendemos como gerenciar nós do Docker Swarm usando o comando docker node update. Cobrimos várias operações-chave, incluindo a atualização da disponibilidade de um nó para pause para evitar que ele receba novas tarefas, permitindo que as tarefas existentes continuem em execução.

Além disso, exploramos como adicionar e remover rótulos de nós. Aprendemos a adicionar um único rótulo usando --label-add key=value e múltiplos rótulos simultaneamente. Também praticamos a remoção de um rótulo específico usando --label-rm key. Finalmente, demonstramos como alterar a função de um nó para manager, destacando a flexibilidade do comando docker node update no gerenciamento do estado e da configuração dos nós dentro de um Docker Swarm.