Cómo usar el comando docker node update para gestionar nodos de swarm

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 (lab), aprenderá cómo administrar nodos de Docker Swarm utilizando el comando docker node update. Explorará diversas funcionalidades de este comando, incluyendo la actualización de la disponibilidad de los nodos para controlar la ubicación de las tareas, la adición y eliminación de etiquetas (labels) para categorizar los nodos con restricciones de programación de tareas, y el cambio del rol de un nodo dentro del enjambre (swarm).

A través de ejercicios prácticos, practicará la pausa de un nodo para evitar nuevas tareas, la adición de una o múltiples etiquetas a los nodos, la eliminación de etiquetas existentes y la promoción de un nodo trabajador (worker node) a un rol de administrador (manager). Estos pasos le brindarán experiencia práctica en la gestión del estado y los atributos de los nodos en un clúster de Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") subgraph Lab Skills docker/ls -.-> lab-555186{{"Cómo usar el comando docker node update para gestionar nodos de swarm"}} docker/ps -.-> lab-555186{{"Cómo usar el comando docker node update para gestionar nodos de swarm"}} docker/exec -.-> lab-555186{{"Cómo usar el comando docker node update para gestionar nodos de swarm"}} docker/inspect -.-> lab-555186{{"Cómo usar el comando docker node update para gestionar nodos de swarm"}} end

Actualizar la disponibilidad de un nodo para pausarlo

En este paso, aprenderemos cómo actualizar la disponibilidad de un nodo en un Docker Swarm. La disponibilidad de un nodo determina si un nodo puede recibir nuevas tareas. Los posibles estados de disponibilidad son active, pause y drain.

  • active: El nodo puede recibir nuevas tareas. Este es el estado predeterminado.
  • pause: El nodo no recibirá nuevas tareas, pero las tareas existentes seguirán ejecutándose.
  • drain: El nodo no recibirá nuevas tareas, y las tareas existentes se detendrán y se reprogramarán en otros nodos.

Cambiaremos la disponibilidad del nodo actual a pause. Primero, necesitamos encontrar el ID del nodo actual. Podemos usar el comando docker node ls para listar los nodos en el enjambre (swarm).

docker node ls

La salida mostrará una lista de nodos, incluyendo su ID, nombre de host, estado, disponibilidad y estado de administrador (manager status). Identifica el ID del nodo en el que estás trabajando actualmente.

Ahora, usa el comando docker node update con la opción --availability pause y el ID del nodo para cambiar la disponibilidad del nodo. Reemplaza <node_id> con el ID real de tu nodo.

docker node update --availability pause <node_id>

Después de ejecutar el comando, puedes verificar el cambio ejecutando docker node ls nuevamente. La disponibilidad de tu nodo ahora debería ser pause.

docker node ls

Agregar una etiqueta (label) a un nodo

En este paso, aprenderemos cómo agregar una etiqueta a un nodo en un Docker Swarm. Las etiquetas son pares clave-valor que se pueden adjuntar a los nodos. Son útiles para organizar y seleccionar nodos basados en criterios específicos, que se pueden utilizar para las restricciones de ubicación de tareas.

Agregaremos una etiqueta llamada env con el valor dev al nodo actual. Primero, asegúrate de tener el ID del nodo del paso anterior. Si no lo tienes, puedes obtenerlo nuevamente usando docker node ls.

docker node ls

Ahora, usa el comando docker node update con la opción --label-add, la etiqueta en el formato clave=valor y el ID del nodo. Reemplaza <node_id> con el ID real de tu nodo.

docker node update --label-add env=dev <node_id>

Después de agregar la etiqueta, puedes inspeccionar el nodo para ver la etiqueta agregada. Usa el comando docker node inspect seguido del ID del nodo.

docker node inspect <node_id>

Busca la sección Labels en la salida. Deberías ver la etiqueta env: dev lista allí.

Agregar múltiples etiquetas (labels) a un nodo

En este paso, aprenderemos cómo agregar múltiples etiquetas a un nodo simultáneamente. Puedes agregar múltiples etiquetas repitiendo la opción --label-add para cada etiqueta que desees agregar.

Agregaremos dos nuevas etiquetas al nodo actual: tier con el valor frontend y region con el valor us-east. Asegúrate de tener el ID del nodo de los pasos anteriores.

Usa el comando docker node update con múltiples opciones --label-add y el ID del nodo. Reemplaza <node_id> con el ID real de tu nodo.

docker node update --label-add tier=frontend --label-add region=us-east <node_id>

Después de agregar las etiquetas, inspecciona el nodo nuevamente para verificar que todas las etiquetas se hayan agregado correctamente.

docker node inspect <node_id>

En la sección Labels de la salida, ahora deberías ver env: dev, tier: frontend y region: us-east.

Eliminar una etiqueta (label) de un nodo

En este paso, aprenderemos cómo eliminar una etiqueta de un nodo en un Docker Swarm. Puedes eliminar una etiqueta utilizando el comando docker node update con la opción --label-rm seguida de la clave de la etiqueta.

Eliminaremos la etiqueta region que agregamos en el paso anterior. Asegúrate de tener el ID del nodo.

Usa el comando docker node update con la opción --label-rm y la clave de la etiqueta (region), seguida del ID del nodo. Reemplaza <node_id> con el ID real de tu nodo.

docker node update --label-rm region <node_id>

Después de eliminar la etiqueta, inspecciona el nodo nuevamente para verificar que la etiqueta se haya eliminado.

docker node inspect <node_id>

En la sección Labels de la salida, ahora deberías ver env: dev y tier: frontend, pero la etiqueta region: us-east debería haber desaparecido.

Actualizar el rol de un nodo a manager

En este paso, aprenderemos cómo actualizar el rol de un nodo en un Docker Swarm. Un nodo puede tener uno de dos roles: manager o worker. Los nodos manager se encargan de las tareas de gestión del swarm, mientras que los nodos worker ejecutan servicios.

Promoveremos el nodo actual al rol de manager. Asegúrate de tener el ID del nodo.

Usa el comando docker node update con la opción --role manager y el ID del nodo. Reemplaza <node_id> con el ID real de tu nodo.

docker node update --role manager <node_id>

Después de actualizar el rol, verifica el cambio listando los nodos.

docker node ls

La salida ahora debería mostrar el rol de tu nodo como Manager.

Resumen

En este laboratorio, aprendimos cómo gestionar nodos de Docker Swarm utilizando el comando docker node update. Cubrimos varias operaciones clave, incluyendo la actualización de la disponibilidad de un nodo a pause para evitar que reciba nuevas tareas mientras se permiten que las tareas existentes sigan ejecutándose.

Además, exploramos cómo agregar y eliminar etiquetas (labels) de los nodos. Aprendimos a agregar una sola etiqueta utilizando --label-add key=value y múltiples etiquetas simultáneamente. También practicamos la eliminación de una etiqueta específica utilizando --label-rm key. Finalmente, demostramos cómo cambiar el rol de un nodo a manager, destacando la flexibilidad del comando docker node update para gestionar el estado y la configuración de los nodos dentro de un Docker Swarm.