Gestionar-Node-Swarm

Swarm

Nota: El Modo-Swarm es una parte importante la gestion de los Nodos, esta administración como (Listaarlos) , (Impeccionar) , (Actualizarlos) y (Abandonar el Docker-Swarm).

-. Enumeremos las Gestion-Nodos-Swarm como parte del ciclo de vida de la administración de Swarm, es posible que deba ver o actualizar un nodo de la siguiente manera:

  • . Listar los Nodos-Swarm
  • . Inspeccionar un Nodo-Swarm individual
  • . Actualizar un Nodo-Swarm
  • . Eliminar un Nodo del Swarm

Listar los Nodos-Swarm

-. Para ver una lista de Nodos-Swarm, ejecute (docker node ls) desde un Nodo-Master :

  1. In: root@juan-Aspire-ES1-512:/# docker node ls
  • ID                                                   HOSTNAME              STATUS      AVAIL    MANAGER STATUS     VER
  • iwao71z6yum7hisrju30wdski *   juan-Aspire-ES1-512   Ready           Active               Leader                   20.10.7
  • u4minr7o6l3sqm0gkooajiorj       serve–hp8100               Down           Active                                             20.10.7

-. La (AVAIL) columna muestra si el programador puede asignar tareas al nodo:

  • Active significa que el planificador puede asignar tareas al nodo.
  • Pause significa que el programador no asigna nuevas tareas al nodo, pero las tareas existentes siguen ejecutándose.
  • Drain significa que el programador no asigna nuevas tareas al nodo. El programador cierra las tareas existentes y las programa en un nodo disponible.

-. La (MANAGER STATUS) columna muestra la participación del nodo en el consenso de Raft. Ningún valor indica un Nodo-worker que no participa en la gestión de Modo-Swarm:

  • Leader significa que el Nodo es el Nodo-Master principal que toma todas las decisiones de Orquestación y Administración del Mode-Swarm.
  • Reachable significa que el Nodo es un Nodo-Master que participa en el quórum de consenso de Raft. Si el Nodo-Líder deja de estar disponible, el nodo es elegible para la elección como nuevo líder.
  • Unavailable significa que el Nodo-Master que no puede comunicarse con otros administradores. Si un Nodo-Master deja de estar disponible, debe unirse a un nuevo Nodo-Master al Modo-Swarm o promover un Nodo-Worker para que sea Administrador.

Inspeccionar un Nodo-Swarm individual

. Para Inspeccionar los Nodo-Swarm tenemos el comando (docker node inspect <NODE-ID>) en un Nodo-Administrador para ver los detalles de un Nodo individual. El resultado predeterminado es el formato JSON, pero puede pasar la ( –pretty) marca para imprimir los resultados en formato legible:

Primero la maquina Host-Master:

  • In: root@juan-Aspire-ES1-512:/# docker node inspect juan-Aspire-ES1-512 –pretty
  • ID: iwao71z6yum7hisrju30wdski
  • Hostname: juan-Aspire-ES1-512
  • Joined at: 2021-08-12 10:23:34.517473221 +0000 utc
  • Status:
  • State: Ready
  • Availability: Active
  • Address: 192.168.1.36
  • Manager Status:
  • Address: 192.168.1.36:2377
  • Raft Status: Reachable
  • Leader: Yes
  • Platform:
  • Operating System: linux
  • Architecture: x86_64
  • Resources:
  • CPUs: 2
  • Memory: 3.728GiB
  • Plugins:
  • Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, local, logentries, splunk, syslog
  • Network: bridge, host, ipvlan, macvlan, null, overlay
  • Volume: local
  • Engine Version: 20.10.7

Segundo la maquina Server-Worker:

  • In: root@juan-Aspire-ES1-512:/# docker node inspect serve-hp8100 –pretty
  • ID: u4minr7o6l3sqm0gkooajiorj
  • Hostname: serve–hp8100
  • Joined at: 2021-08-12 11:34:42.861569821 +0000 utc
  • Status:
  • State: Down
  • Message: Heartbeat failure
  • Availability: Active
  • Address: 192.168.1.21
  • Platform:
  • Operating System: linux
  • Architecture: x86_64
  • Resources:
  • CPUs: 4
  • Memory: 3.649GiB
  • Plugins:
  • Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, local, logentries, splunk, syslog
  • Network: bridge, host, ipvlan, macvlan, null, overlay
  • Volume: local
  • Engine Version: 20.10.7

Actualizar un nodo-Swarm

-. Los atributos de los Nodos podemos modificar los, de tres maneras:

  • Cambiar la disponibilidad del Nodo
  • Agregar o eliminar metadatos de etiquetas
  • Cambiar un rol de Nodo

Cambiar la disponibilidad del Nodo

Cambiar la disponibilidad del Nodo permite:

Drenar un Nodo-Master para que solo realice tareas de Administración de Swarm y no esté disponible para la asignación de tareas.

Drene un Nodo para que pueda desmontarlo para su mantenimiento.

Pausar un Nodo para que no pueda recibir nuevas tareas.

Restaurar el estado disponible de los nodos (Drain) o (Pause).

Pongamos un ejemplo, para cambiar un Nodo-Master a Drain (disponible):

  1. In: root@juan-Aspire-ES1-512:/# docker node update –availability drain juan-Aspire-ES1-512

Lista de modos AVAILABILITY (Active)-(Pause)-(Drain)

Agregar-Eliminar metadatos de etiquetas

-. Las Etiquetas de Nodo proporcionan un método flexible de organización de Nodos. También puede usar Etiquetas de Nodo en restricciones de Servicio. Aplique restricciones cuando cree un Servicio para limitar los Nodos donde el programador asigna tareas para el servicio.

-. Ejecutar (docker node update –label-add) en un nodo de administrador para agregar metadatos de etiquetas a un nodo. La ( –label-add) bandera admite a <key> o un <key> = <value> par.

Pase la ( –label-add) bandera una vez por cada etiqueta de Nodo que desee agregar:

# docker node update –label-add foo –label-add bar=baz node-1

-. Las Etiquetas que establezca para los Nodos mediante la actualización de Nodo-Swarm se aplican solo a la entidad de Nodo dentro del Swarm. No los confunda con las etiquetas del demonio de docker para dockerd .

-. Por lo tanto, las Etiquetas de Nodo se pueden utilizar para limitar las tareas críticas a los Nodos que cumplen con ciertos requisitos. Por ejemplo, programe solo en máquinas donde se deben ejecutar cargas de trabajo especiales, como máquinas que cumplen con el cumplimiento de PCI-SS .

-.Un Worker comprometido no podría comprometer estas cargas de trabajo especiales porque no puede cambiar las etiquetas de los nodos.

. Las Etiquetas de Motor-Docker, sin embargo, siguen siendo útiles porque algunas características que no afectan la Orquestación segura de contenedores podrían estar mejor compensadas de manera descentralizada. Un ejemplo: un Motor-Docker podría tener una Etiqueta para indicar que tiene un cierto tipo de dispositivo de disco, que puede no ser relevante para la seguridad directamente. El orquestador del Swarm “confía” más fácilmente en estas etiquetas.

Promover-Denegar un Nodo

-. Puede promover un Nodo-Worker al rol de Master. Esto es útil cuando un Nodo-Master deja de estar disponible o si desea desconectar a un Nodo-Master para realizar tareas de mantenimiento. Del mismo modo, puede degradar un nodo de Node-Master al rol de Worker .

Promover un Nodo o un conjunto de Nodos, (docker node promote) desde un Nodo-Master:

# docker node promote node-3 node-2

Degradar un Nodo o un conjunto de Nodos, (docker node demote) desde un Nodo Master :

# docker node demote node-3 node-2

(docker node promote) y (docker node demote) son comandos de conveniencia para

  • docker node update –role manager
  • docker node update –role worker

Instalar-Complementos en Nodos-Swarm

-. Si su Servicio-Swarm se basa en uno o más complementos , estos complementos deben estar disponibles en todos los Nodos donde el Servicio podría implementarse. Puede instalar manualmente el complemento en cada Nodo o realizar un Script de instalación. También puede implementar el complemento de una manera similar a un servicio global utilizando la API-Docker, especificando un en (PluginSpec) lugar de un (ContainerSpec).

. La (PluginSpec) define el desarrollador del complemento. Para agregar el complemento a todos los nodos de Docker, use la service/createAPI, pasando el PluginSpecJSON definido en TaskTemplate.

 

Eliminar un Nodo del Swarm

-. Ejecutando el (docker swarm leave) comando en un Nodo para eliminarlo del Swarm, un ejemplo, eliminar un Nodo-worker de un Docker-Swarm :

# docker swarm leave

  • Cuando un Nodo abandona el Swarm, el Motor-Docker deja de funcionar en Modo-Swarm. El Orquestador ya no programa tareas en el Nodo.
  • Si el Nodo es un Nodo-Master, recibirá una advertencia sobre el mantenimiento del (quórum). Para anular la advertencia, pase la ( –force) bandera. Si el último Nodo-Administrador abandona el Swarm, el Swarm deja de estar disponible y es necesario que tome medidas de recuperación ante desastres.
  • Después de que un Nodo abandona el Swarm, puede ejecutar el (docker node rm) comando en un Nodo-Master para eliminar el Nodo que deseamos de la lista de nodos.

# docker node rm node-2

 

Recopilando:

En este posts he analizado la gestión de los Node-Swarm, primero he empezado por listar los y ver los estados. Actualizar los Nodos, unos pequeños apuntes de los Complementos y por ultimo como eliminar un Nodo del Modo-Swarm.

Referencias: (Entorno-Moreluz)

Referencias: (Docker)