Filtrar nodos por etiqueta de nodo
En este paso, aprenderemos cómo filtrar nodos en función de las etiquetas (labels) asignadas a ellos. Las etiquetas de nodo son pares clave-valor que se pueden adjuntar a los nodos con fines organizativos o para controlar la ubicación de los servicios.
Primero, agreguemos una etiqueta a nuestro nodo manager. Agregaremos la etiqueta location=datacenter1. Para hacer esto, usamos el comando docker node update seguido del ID del nodo y la bandera --label-add.
Obtengamos nuevamente el ID del nodo usando docker node ls -q:
NODE_ID=$(docker node ls -q)
echo $NODE_ID
Ahora, actualicemos el nodo con la etiqueta:
docker node update --label-add location=datacenter1 $NODE_ID
Deberías ver una salida que confirme la actualización del nodo.
Para verificar que se ha agregado la etiqueta, puedes inspeccionar el nodo:
docker node inspect $NODE_ID
Busca la sección Labels en la salida. Deberías ver "location": "datacenter1".
Ahora, filtremos los nodos en función de esta etiqueta. Usamos la bandera --filter con la clave label y la etiqueta en el formato clave=valor.
docker node ls --filter label=location=datacenter1
Este comando mostrará solo los nodos que tienen la etiqueta location con el valor datacenter1. En nuestro caso, mostrará nuestro nodo manager.
También puedes filtrar los nodos que tienen una clave de etiqueta específica, independientemente de su valor, simplemente proporcionando la clave:
docker node ls --filter label=location
Esto mostrará todos los nodos que tienen la etiqueta location definida.