Filtrer les nœuds (nodes) par étiquette (label) de nœud
Dans cette étape, nous apprendrons à filtrer les nœuds en fonction des étiquettes leur étant attribuées. Les étiquettes de nœud sont des paires clé-valeur que vous pouvez attacher aux nœuds à des fins d'organisation ou pour contrôler le placement des services.
Tout d'abord, ajoutons une étiquette à notre nœud manager. Nous allons ajouter l'étiquette location=datacenter1
. Pour ce faire, nous utilisons la commande docker node update
suivie de l'ID du nœud et du drapeau --label-add
.
Récupérez à nouveau l'ID du nœud en utilisant docker node ls -q
:
NODE_ID=$(docker node ls -q)
echo $NODE_ID
Maintenant, mettez à jour le nœud avec l'étiquette :
docker node update --label-add location=datacenter1 $NODE_ID
Vous devriez voir un résultat confirmant la mise à jour du nœud.
Pour vérifier que l'étiquette a été ajoutée, vous pouvez inspecter le nœud :
docker node inspect $NODE_ID
Recherchez la section Labels
dans le résultat. Vous devriez voir "location": "datacenter1"
.
Maintenant, filtrons les nœuds en fonction de cette étiquette. Nous utilisons le drapeau --filter
avec la clé label
et l'étiquette au format clé=valeur
.
docker node ls --filter label=location=datacenter1
Cette commande affichera uniquement les nœuds qui ont l'étiquette location
avec la valeur datacenter1
. Dans notre cas, cela affichera notre nœud manager.
Vous pouvez également filtrer les nœuds qui ont une clé d'étiquette spécifique, quelle que soit sa valeur, en fournissant simplement la clé :
docker node ls --filter label=location
Cela affichera tous les nœuds pour lesquels l'étiquette location
est définie.