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.



