Comment utiliser la commande docker volume update pour gérer la disponibilité des volumes de cluster

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à gérer la disponibilité des volumes de cluster Docker à l'aide de la commande docker volume update. Vous commencerez par créer un volume de cluster, qui est essentiel pour partager des données entre les nœuds dans un Swarm Docker.

Après la création, vous explorerez comment modifier l'état de disponibilité du volume. Cela inclut la mise à jour de la disponibilité à pause, qui empêche de nouvelles tâches d'utiliser le volume, puis à drain, qui vise à déplacer les tâches des nœuds où le volume n'est pas disponible. Enfin, vous apprendrez à rétablir la disponibilité à active, permettant au volume d'être pleinement utilisé par les nouvelles et les tâches existantes. Ce laboratoire offre une expérience pratique pour contrôler l'accès et l'utilisation de vos volumes de cluster dans un environnement 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{{"Comment utiliser la commande docker volume update pour gérer la disponibilité des volumes de cluster"}} docker/inspect -.-> lab-555263{{"Comment utiliser la commande docker volume update pour gérer la disponibilité des volumes de cluster"}} docker/volume -.-> lab-555263{{"Comment utiliser la commande docker volume update pour gérer la disponibilité des volumes de cluster"}} end

Créer un volume de cluster

Dans cette étape, nous apprendrons à créer un volume de cluster dans Docker. Un volume de cluster est un volume qui peut être accédé par plusieurs conteneurs sur différents nœuds dans un Swarm Docker. Cela est utile pour les applications qui ont besoin de partager des données, telles que les bases de données ou les serveurs de fichiers.

Avant de créer un volume de cluster, nous devons nous assurer que Docker Swarm est initialisé. Si vous n'avez pas encore initialisé le Swarm, vous pouvez le faire avec la commande suivante :

docker swarm init

Vous devriez voir un message indiquant que le swarm a été initialisé.

Maintenant, créons un volume de cluster. Nous utiliserons la commande docker volume create avec le paramètre --driver local et spécifierons le nom du volume. Le pilote (driver) local est le pilote par défaut et convient pour créer des volumes sur un seul nœud. Pour un volume de cluster, Docker Swarm gère la distribution et l'accès entre les nœuds.

docker volume create my-cluster-volume

Après avoir exécuté la commande, vous devriez voir le nom du volume créé affiché dans la console :

my-cluster-volume

Pour vérifier que le volume a été créé, vous pouvez lister les volumes existants en utilisant la commande docker volume ls :

docker volume ls

Vous devriez voir my-cluster-volume dans la liste des résultats.

Mettre à jour la disponibilité du volume de cluster en mode pause

Dans cette étape, nous apprendrons à mettre à jour la disponibilité d'un volume de cluster sur pause. Lorsque la disponibilité d'un volume est définie sur pause, les nouvelles tâches qui nécessitent ce volume ne seront pas planifiées sur les nœuds où le volume n'est pas disponible. Les tâches existantes utilisant le volume continueront de fonctionner. Cet état est utile pour empêcher temporairement l'utilisation d'un volume sans perturber les services actuellement en cours d'exécution.

Nous utiliserons la commande docker volume update pour modifier la disponibilité du my-cluster-volume que nous avons créé à l'étape précédente. Le paramètre --availability est utilisé pour spécifier l'état de disponibilité souhaité.

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

Après avoir exécuté la commande, vous devriez voir un message confirmant la mise à jour :

my-cluster-volume

Pour vérifier que la disponibilité du volume a été mise à jour sur pause, nous pouvons inspecter le volume en utilisant la commande docker volume inspect et rechercher le champ Availability.

docker volume inspect my-cluster-volume

Dans la sortie de la commande inspect, recherchez le champ Availability dans la section Spec. Il devrait indiquer 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": {}
  }
]

Mettre à jour la disponibilité du volume de cluster en mode drain

Dans cette étape, nous apprendrons à mettre à jour la disponibilité d'un volume de cluster sur drain. Lorsque la disponibilité d'un volume est définie sur drain, les nouvelles tâches qui nécessitent ce volume ne seront pas planifiées sur les nœuds où le volume n'est pas disponible. De plus, Docker Swarm tentera d'arrêter les tâches existantes qui utilisent le volume et de les reprogrammer sur des nœuds où le volume est disponible. Cet état est utile pour migrer gracieusement les services loin d'un volume avant d'effectuer des opérations de maintenance ou de le supprimer.

Nous utiliserons à nouveau la commande docker volume update, mais cette fois nous définirons le paramètre --availability sur drain.

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

Vous devriez voir le nom du volume affiché comme confirmation :

my-cluster-volume

Pour vérifier que la disponibilité du volume a été mise à jour sur drain, nous allons inspecter le volume en utilisant docker volume inspect et vérifier le champ Availability.

docker volume inspect my-cluster-volume

Dans la sortie, confirmez que le champ Availability dans la section Spec est maintenant 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": {}
  }
]

Mettre à jour la disponibilité du volume de cluster en mode actif

Dans cette étape finale, nous apprendrons à remettre la disponibilité d'un volume de cluster en mode active. Lorsque la disponibilité d'un volume est définie sur active, les nouvelles tâches qui nécessitent ce volume peuvent être planifiées sur n'importe quel nœud où le volume est disponible. C'est l'état par défaut d'un volume et cela indique qu'il est prêt à être utilisé par les services.

Nous utiliserons la commande docker volume update une dernière fois, en définissant le paramètre --availability sur active.

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

Vous devriez voir le nom du volume affiché comme confirmation :

my-cluster-volume

Pour vérifier que la disponibilité du volume a été correctement remise en mode active, nous allons inspecter le volume en utilisant docker volume inspect et vérifier le champ Availability.

docker volume inspect my-cluster-volume

Dans la sortie, confirmez que le champ Availability dans la section Spec est maintenant 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": {}
  }
]

Vous avez maintenant créé avec succès un volume de cluster et pratiqué la mise à jour de sa disponibilité entre les états pause, drain et active.

Résumé

Dans ce laboratoire (lab), nous avons appris à gérer la disponibilité des volumes de cluster Docker en utilisant la commande docker volume update. Nous avons commencé par créer un volume de cluster en utilisant docker volume create.

Ensuite, nous avons exploré comment modifier l'état de disponibilité du volume. Nous avons appris à définir la disponibilité sur pause, ce qui empêche les nouvelles tâches d'utiliser le volume tout en permettant aux tâches existantes de continuer. Nous avons ensuite vu comment changer la disponibilité sur drain, qui tente d'arrêter les tâches utilisant le volume et de les reprogrammer ailleurs. Enfin, nous avons appris à remettre la disponibilité en mode active, permettant aux nouvelles tâches d'utiliser le volume. Ces étapes ont démontré la flexibilité de la gestion de l'accès aux volumes de cluster dans un environnement Docker Swarm.