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.