Introdução
Neste laboratório, você aprenderá como gerenciar a disponibilidade de volumes de cluster Docker usando o comando docker volume update. Você começará criando um volume de cluster, que é essencial para compartilhar dados entre nós em um Docker Swarm.
Após a criação, você explorará como alterar o estado de disponibilidade do volume. Isso inclui atualizar a disponibilidade para pause, o que impede que novas tarefas usem o volume, e depois para drain, que visa mover as tarefas dos nós onde o volume não está disponível. Finalmente, você aprenderá como definir a disponibilidade de volta para active, permitindo que o volume seja totalmente utilizado por tarefas novas e existentes. Este laboratório oferece experiência prática no controle de como seus volumes de cluster são acessados e usados dentro de um ambiente Swarm.
Criar um volume de cluster
Nesta etapa, aprenderemos como criar um volume de cluster no Docker. Um volume de cluster é um volume que pode ser acessado por vários contêineres em diferentes nós em um Docker Swarm. Isso é útil para aplicativos que precisam compartilhar dados, como bancos de dados ou servidores de arquivos.
Antes de criar um volume de cluster, precisamos garantir que o Docker Swarm esteja inicializado. Se você ainda não inicializou o Swarm, pode fazê-lo com o seguinte comando:
docker swarm init
Você deve ver uma saída indicando que o swarm foi inicializado.
Agora, vamos criar um volume de cluster. Usaremos o comando docker volume create com a flag --driver local e especificaremos o nome do volume. O driver local é o driver padrão e é adequado para criar volumes em um único nó. Para um volume de cluster, o Docker Swarm lida com a distribuição e o acesso entre os nós.
docker volume create my-cluster-volume
Após executar o comando, você deve ver o nome do volume criado impresso no console:
my-cluster-volume
Para verificar se o volume foi criado, você pode listar os volumes existentes usando o comando docker volume ls:
docker volume ls
Você deve ver my-cluster-volume listado na saída.
Atualizar a disponibilidade do volume do cluster para pause
Nesta etapa, aprenderemos como atualizar a disponibilidade de um volume de cluster para pause. Quando a disponibilidade de um volume é definida como pause, novas tarefas que exigem este volume não serão agendadas em nós onde o volume não está disponível. As tarefas existentes que usam o volume continuarão a ser executadas. Este estado é útil para impedir temporariamente o novo uso de um volume sem interromper os serviços em execução.
Usaremos o comando docker volume update para alterar a disponibilidade do my-cluster-volume que criamos na etapa anterior. A flag --availability é usada para especificar o estado de disponibilidade desejado.
docker volume update --availability pause my-cluster-volume
Após executar o comando, você deve ver a saída confirmando a atualização:
my-cluster-volume
Para verificar se a disponibilidade do volume foi atualizada para pause, podemos inspecionar o volume usando o comando docker volume inspect e procurar o campo Availability.
docker volume inspect my-cluster-volume
Na saída do comando inspect, procure o campo Availability dentro da seção Spec. Ele deve mostrar pause.
[
{
"CreatedAt": "...",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-cluster-volume/_data",
"Name": "my-cluster-volume",
"Options": null,
"Scope": "local",
"Spec": {
"Availability": "pause"
},
"Status": {}
}
]
Atualizar a disponibilidade do volume do cluster para drain
Nesta etapa, aprenderemos como atualizar a disponibilidade de um volume de cluster para drain. Quando a disponibilidade de um volume é definida como drain, novas tarefas que exigem este volume não serão agendadas em nós onde o volume não está disponível. Além disso, o Docker Swarm tentará desligar as tarefas existentes que estão usando o volume e reagendá-las em nós onde o volume está disponível. Este estado é útil para migrar graciosamente os serviços de um volume antes de realizar a manutenção ou removê-lo.
Usaremos novamente o comando docker volume update, mas desta vez definiremos a flag --availability como drain.
docker volume update --availability drain my-cluster-volume
Você deve ver o nome do volume impresso como confirmação:
my-cluster-volume
Para verificar se a disponibilidade do volume foi atualizada para drain, inspecionaremos o volume usando docker volume inspect e verificaremos o campo Availability.
docker volume inspect my-cluster-volume
Na saída, confirme que o campo Availability dentro da seção Spec agora é drain.
[
{
"CreatedAt": "...",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-cluster-volume/_data",
"Name": "my-cluster-volume",
"Options": null,
"Scope": "local",
"Spec": {
"Availability": "drain"
},
"Status": {}
}
]
Atualizar a disponibilidade do volume do cluster para ativo
Nesta etapa final, aprenderemos como atualizar a disponibilidade de um volume de cluster de volta para active. Quando a disponibilidade de um volume é definida como active, novas tarefas que exigem este volume podem ser agendadas em qualquer nó onde o volume estiver disponível. Este é o estado padrão para um volume e indica que ele está pronto para uso pelos serviços.
Usaremos o comando docker volume update pela última vez, definindo a flag --availability como active.
docker volume update --availability active my-cluster-volume
Você deve ver o nome do volume impresso como confirmação:
my-cluster-volume
Para verificar se a disponibilidade do volume foi definida com sucesso de volta para active, inspecionaremos o volume usando docker volume inspect e verificaremos o campo Availability.
docker volume inspect my-cluster-volume
Na saída, confirme que o campo Availability dentro da seção Spec agora é active.
[
{
"CreatedAt": "...",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-cluster-volume/_data",
"Name": "my-cluster-volume",
"Options": null,
"Scope": "local",
"Spec": {
"Availability": "active"
},
"Status": {}
}
]
Você agora criou com sucesso um volume de cluster e praticou a atualização de sua disponibilidade entre os estados pause, drain e active.
Resumo
Neste laboratório, aprendemos como gerenciar a disponibilidade de volumes de cluster Docker usando o comando docker volume update. Começamos criando um volume de cluster usando docker volume create.
Posteriormente, exploramos como modificar o estado de disponibilidade do volume. Aprendemos a definir a disponibilidade como pause, o que impede que novas tarefas usem o volume, enquanto permite que as tarefas existentes continuem. Em seguida, vimos como alterar a disponibilidade para drain, que tenta parar as tarefas que usam o volume e reagendá-las em outro lugar. Finalmente, aprendemos a definir a disponibilidade de volta para active, permitindo que novas tarefas utilizem o volume. Essas etapas demonstraram a flexibilidade de gerenciar o acesso ao volume do cluster dentro de um ambiente Docker Swarm.



