Cómo usar el comando docker volume update para gestionar la disponibilidad de volúmenes de clúster

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo gestionar la disponibilidad de los volúmenes de un clúster de Docker utilizando el comando docker volume update. Comenzará creando un volumen de clúster, que es esencial para compartir datos entre nodos en un Swarm de Docker.

Después de la creación, explorará cómo cambiar el estado de disponibilidad del volumen. Esto incluye actualizar la disponibilidad a pause, lo que impide que nuevas tareas utilicen el volumen, y luego a drain, que tiene como objetivo mover las tareas de los nodos donde el volumen no está disponible. Finalmente, aprenderá cómo establecer la disponibilidad de nuevo en active, lo que permite que el volumen sea completamente utilizado por nuevas y existentes tareas. Este laboratorio brinda experiencia práctica en el control de cómo se accede y utiliza sus volúmenes de clúster en un entorno Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/ls -.-> lab-555263{{"Cómo usar el comando docker volume update para gestionar la disponibilidad de volúmenes de clúster"}} docker/inspect -.-> lab-555263{{"Cómo usar el comando docker volume update para gestionar la disponibilidad de volúmenes de clúster"}} docker/volume -.-> lab-555263{{"Cómo usar el comando docker volume update para gestionar la disponibilidad de volúmenes de clúster"}} end

Crear un volumen de clúster

En este paso, aprenderemos cómo crear un volumen de clúster en Docker. Un volumen de clúster es un volumen que puede ser accedido por múltiples contenedores en diferentes nodos de un Swarm de Docker. Esto es útil para aplicaciones que necesitan compartir datos, como bases de datos o servidores de archivos.

Antes de crear un volumen de clúster, debemos asegurarnos de que Docker Swarm esté inicializado. Si aún no has inicializado Swarm, puedes hacerlo con el siguiente comando:

docker swarm init

Deberías ver una salida que indique que el swarm se ha inicializado.

Ahora, creemos un volumen de clúster. Usaremos el comando docker volume create con la bandera --driver local y especificaremos el nombre del volumen. El controlador local es el controlador predeterminado y es adecuado para crear volúmenes en un solo nodo. Para un volumen de clúster, Docker Swarm se encarga de la distribución y el acceso entre nodos.

docker volume create my-cluster-volume

Después de ejecutar el comando, deberías ver el nombre del volumen creado impreso en la consola:

my-cluster-volume

Para verificar que el volumen se ha creado, puedes listar los volúmenes existentes utilizando el comando docker volume ls:

docker volume ls

Deberías ver my-cluster-volume en la salida.

Actualizar la disponibilidad del volumen de clúster a pausa

En este paso, aprenderemos cómo actualizar la disponibilidad de un volumen de clúster a pause (pausa). Cuando la disponibilidad de un volumen se establece en pause, las nuevas tareas que requieran este volumen no se programarán en los nodos donde el volumen no está disponible. Las tareas existentes que utilizan el volumen seguirán ejecutándose. Este estado es útil para prevenir temporalmente el nuevo uso de un volumen sin interrumpir los servicios en ejecución.

Utilizaremos el comando docker volume update para cambiar la disponibilidad del my-cluster-volume que creamos en el paso anterior. La bandera --availability se utiliza para especificar el estado de disponibilidad deseado.

docker volume update --availability pause my-cluster-volume

Después de ejecutar el comando, deberías ver una salida que confirme la actualización:

my-cluster-volume

Para verificar que la disponibilidad del volumen se ha actualizado a pause, podemos inspeccionar el volumen utilizando el comando docker volume inspect y buscar el campo Availability.

docker volume inspect my-cluster-volume

En la salida del comando inspect, busca el campo Availability dentro de la sección Spec. Debería 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": {}
  }
]

Actualizar la disponibilidad del volumen de clúster a "drain"

En este paso, aprenderemos cómo actualizar la disponibilidad de un volumen de clúster a drain (desalojar). Cuando la disponibilidad de un volumen se establece en drain, las nuevas tareas que requieran este volumen no se programarán en los nodos donde el volumen no está disponible. Además, Docker Swarm intentará detener las tareas existentes que estén utilizando el volumen y reprogramarlas en nodos donde el volumen esté disponible. Este estado es útil para migrar servicios de forma adecuada lejos de un volumen antes de realizar mantenimiento o eliminarlo.

Volveremos a utilizar el comando docker volume update, pero esta vez estableceremos la bandera --availability en drain.

docker volume update --availability drain my-cluster-volume

Deberías ver el nombre del volumen impreso como confirmación:

my-cluster-volume

Para verificar que la disponibilidad del volumen se ha actualizado a drain, inspeccionaremos el volumen utilizando docker volume inspect y comprobaremos el campo Availability.

docker volume inspect my-cluster-volume

En la salida, confirma que el campo Availability dentro de la sección Spec ahora es 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": {}
  }
]

Actualizar la disponibilidad del volumen de clúster a activo

En este último paso, aprenderemos cómo actualizar la disponibilidad de un volumen de clúster de nuevo a active (activo). Cuando la disponibilidad de un volumen se establece en active, las nuevas tareas que requieran este volumen se pueden programar en cualquier nodo donde el volumen esté disponible. Este es el estado predeterminado de un volumen y indica que está listo para ser utilizado por los servicios.

Utilizaremos el comando docker volume update por última vez, estableciendo la bandera --availability en active.

docker volume update --availability active my-cluster-volume

Deberías ver el nombre del volumen impreso como confirmación:

my-cluster-volume

Para verificar que la disponibilidad del volumen se ha establecido correctamente de nuevo en active, inspeccionaremos el volumen utilizando docker volume inspect y comprobaremos el campo Availability.

docker volume inspect my-cluster-volume

En la salida, confirma que el campo Availability dentro de la sección Spec ahora es 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": {}
  }
]

Ahora has creado con éxito un volumen de clúster y has practicado actualizar su disponibilidad entre los estados pause (pausa), drain (desalojar) y active (activo).

Resumen

En este laboratorio, aprendimos cómo gestionar la disponibilidad de los volúmenes de clúster de Docker utilizando el comando docker volume update. Comenzamos creando un volumen de clúster utilizando docker volume create.

Posteriormente, exploramos cómo modificar el estado de disponibilidad del volumen. Aprendimos a establecer la disponibilidad en pause (pausa), lo que impide que nuevas tareas utilicen el volumen mientras permite que las tareas existentes continúen. Luego, vimos cómo cambiar la disponibilidad a drain (desalojar), lo que intenta detener las tareas que utilizan el volumen y reprogramarlas en otro lugar. Finalmente, aprendimos a establecer la disponibilidad de nuevo en active (activo), lo que permite que nuevas tareas utilicen el volumen. Estos pasos demostraron la flexibilidad de gestionar el acceso a los volúmenes de clúster dentro de un entorno Docker Swarm.