Categoría: Docker Swarm

Docker Swarm

  • Gestionando etiquetas/labels en los nodos de un clúster de Docker Swarm

    Gestionando etiquetas/labels en los nodos de un clúster de Docker Swarm

    Docker Swarm permite gestionar un clúster de máquinas Docker. Cada máquina en el clúster se denomina nodo. Es posible asignar etiquetas a los nodos para organizarlos y facilitar su administración. En este artículo veremos cómo crear, visualizar y eliminar etiquetas en los nodos de un clúster Swarm.

    Creando etiquetas

    Para crear una etiqueta en un nodo, utilizamos el comando docker node update junto con la opción --label-add:

    docker node update --label-add nombre_etiqueta=valor_etiqueta node_id

    Por ejemplo, para crear una etiqueta “entorno” con valor “producción” en el nodo “node1”:

    docker node update --label-add entorno=producción node1

    Podemos agregar múltiples etiquetas al mismo tiempo separando cada par clave/valor con una coma:

    docker node update --label-add entorno=producción,región=eu node1

    Visualizando etiquetas

    Para ver las etiquetas de un nodo, utilizamos docker node inspect:

    docker node inspect node1 --pretty

    Esto mostrará todas las etiquetas definidas en ese nodo.

    También podemos filtrar y mostrar solo ciertas etiquetas. Por ejemplo, para ver solo la etiqueta “entorno”:

    docker node inspect -f '{{.Spec.Labels.entorno}}' node1

    Eliminando etiquetas

    Para eliminar una etiqueta de un nodo, utilizamos nuevamente docker node update pero con la opción --label-rm:

    docker node update --label-rm nombre_etiqueta node_id

    Por ejemplo, para eliminar la etiqueta “entorno” del nodo “node1”:

    docker node update --label-rm entorno node1

    De esta manera es sencillo gestionar etiquetas en los nodos de un clúster Docker Swarm para organizarlos y administrarlos más fácilmente. Las etiquetas permiten agrupar nodos por diferentes criterios como entorno, región, etc.

  • 15 Comandos útiles para administrar Docker Swarm

    Docker Swarm es una herramienta de orquestación nativa de Docker que te permite crear y administrar clústeres de contenedores. Con Docker Swarm, puedes distribuir y escalar aplicaciones de manera fácil y eficiente. En esta entrada, exploraremos 15 comandos utilizados para administrar Docker Swarm, desde la creación de un clúster hasta la gestión de servicios, nodos y redes.

    1. Iniciar un clúster de Docker Swarm

    El primer paso para utilizar Docker Swarm es inicializar un clúster. Utiliza el siguiente comando en el nodo principal:

    docker swarm init

    Esto creará un clúster Swarm y generará un token que se utilizará para unir otros nodos al clúster.

    2. Recuperar token para unir nodos al clúster de Docker Swarm

    Para recuperar el token que permite agregar nodos workers al clúster de Docker Swarm, ejecuta el siguiente comando desde un nodo manager:

    docker swarm join-token worker

    Para recuperar el token que permite agregar un nodo manager al clúster de Docker Swarm, ejecuta el siguiente comando desde un nodo manager:

    docker swarm join-token manager

    3. Unirse a un clúster Swarm

    Para agregar nodos adicionales al clúster Swarm, ejecuta el siguiente comando en cada nodo que desees unir:

    docker swarm join --token <TOKEN> <IP_DEL_NODO_PRINCIPAL>:<PUERTO>

    Reemplaza <TOKEN> con el token generado en el paso anterior y <IP_DEL_NODO_PRINCIPAL>:<PUERTO> con la dirección IP y el puerto del nodo principal.

    4. Ver el estado del clúster Swarm

    Puedes verificar el estado actual del clúster Swarm utilizando el siguiente comando:

    docker node ls

    Esto mostrará una lista de todos los nodos en el clúster y su estado actual.

    5. Crear un servicio en el clúster

    Para desplegar una aplicación o servicio en el clúster Swarm, utiliza el siguiente comando:

    docker service create --name <NOMBRE_DEL_SERVICIO> <IMAGEN_DEL_CONTENEDOR>

    6. Ver servicios en ejecución

    Para ver una lista de todos los servicios en ejecución en el clúster, ejecuta el siguiente comando:

    docker service ls

    Esto mostrará información como el nombre del servicio, el número de réplicas y el estado actual.

    7. Escalar servicios

    Puedes escalar un servicio para aumentar o disminuir el número de réplicas que se están ejecutando. Utiliza el siguiente comando:

    docker service scale <NOMBRE_DEL_SERVICIO>=<NÚMERO_DE_RÉPLICAS>

    Reemplaza <NOMBRE_DEL_SERVICIO> con el nombre del servicio que deseas escalar y <NÚMERO_DE_RÉPLICAS> con el número deseado de réplicas.

    8. Inspeccionar un servicio

    Si necesitas obtener información más detallada sobre un servicio específico, puedes usar el siguiente comando:

    docker service inspect <NOMBRE_DEL_SERVICIO>

    Esto mostrará información detallada, como la configuración del servicio, las réplicas y las restricciones.

    Para una visualización más amigable, puedes utilizar la opción “–pretty”

    docker service inspect --pretty <NOMBRE_DEL_SERVICIO>

    9. Actualizar un servicio

    docker service update <NOMBRE_DEL_SERVICIO> --image <NUEVA_IMAGEN_DEL_CONTENEDOR>

    Reemplaza <NOMBRE_DEL_SERVICIO> con el nombre del servicio que deseas actualizar y <NUEVA_IMAGEN_DEL_CONTENEDOR> con la nueva imagen del contenedor que deseas utilizar.

    10. Eliminar un servicio

    Si ya no necesitas un servicio en el clúster, puedes eliminarlo utilizando el siguiente comando:

    docker service rm <NOMBRE_DEL_SERVICIO>

    11. Ver logs de servicio

    Puedes ver los registros de un servicio específico utilizando el siguiente comando:

    docker service logs <NOMBRE_DEL_SERVICIO>

    Esto mostrará los registros generados por las réplicas del servicio.

    Para ver los registros en tiempo real, se puede agregar la opción “-f”:

    docker service logs -f <NOMBRE_DEL_SERVICIO>

    12. Inspeccionar un nodo

    Si deseas obtener información detallada sobre un nodo específico en el clúster Swarm, ejecuta el siguiente comando:

    docker node inspect <NOMBRE_DEL_NODO>

    13. Crear una red en el clúster

    Puedes crear una red específica para los servicios en el clúster Swarm utilizando el siguiente comando:

    docker network create --driver overlay <NOMBRE_DE_LA_RED>

    Reemplaza <NOMBRE_DE_LA_RED> con el nombre que deseas asignar a la red.

    14. Ver redes en el clúster

    Para ver una lista de todas las redes en el clúster Swarm, utiliza el siguiente comando:

    docker network ls

    Esto mostrará las redes disponibles y su estado actual.

    15. Detener un clúster Swarm

    Si deseas detener todos los servicios y nodos del clúster Swarm, ejecuta el siguiente comando en el nodo principal:

    docker swarm leave --force

    Esto detendrá y eliminará el clúster Swarm.