Nota: El Modo-Swarm esta deshabilitado por defecto y comienza a ejecutarse usamos el comando (docker swarm init) y seguiremos los pasos de configuración, ejecutar el Cluster de Motor-Docker a traves de Docker-Swarm
-. Cuando se instala por primera vez y comienza a trabajar con Docker-Engine, el Modo-Swarm está deshabilitado de forma predeterminada. Cuando habilita el Modo-Swarm, trabaja con el concepto de Servicios es la definición de tareas a ejecutar en los Nodos-Master-Worker.
Dos formas de ejecutar el motor en Modo-Swarm:
# Crea un nuevo enjambre: esta es la que usare en esta ocasión
# Únete a un enjambre existente: esta otra para la prosima
-. Cuando ejecuta el motor en Modo-Swarm en su máquina local, puede crear y probar Servicios basados en imágenes que haya creado u otras imágenes disponibles como las del repositorio de Docker . En su entorno de producción, el Modo-Swarm proporciona una plataforma tolerante a fallas con funciones de Administración de Clústeres para mantener sus servicios en funcionamiento y disponibles.
Crear Modo-Swarm
-. Cuando ejecuta el comando para crear Modo-Swarm, Docker Engine comienza a ejecutarse en modo Swarm. Ejecutar (docker swarm init) para crear un Modo-Swarm de un solo Nodo. El motor configura el Swarm de la siguiente manera:
- Cambia el modo actual al Modo-Swarm.
- Crea un Mode-Swarm llamado default.
- Designa el Nodo actual como un Nodo-Master líder para el Swarm.
- Nombra el Nodo con el nombre de host de la máquina.
- Configura el Master para escuchar en una interfaz de red activa en el puerto 2377.
- Establece la (Active) disponibilidad del Nodo actual , lo que significa que puede recibir tareas del planificador.
- Inicia un almacén de datos distribuido interno para los motores que participan en el Modo-Swarm para mantener una vista coherente del Swarm y todos los servicios que se ejecutan en él.
- De forma predeterminada, genera una CA raíz autofirmada para el Swarm.
- De forma predeterminada, genera ( —token) para que los Nodos-Worker y Nodos-Master se unan al Modo-Swarm.
- Crea una Network-Overlay con el nombre ingress de publicar puertos de servicio externos al Swarm.
- Crea una superposición de direcciones IP y una máscara de subred predeterminadas para sus redes
- La salida para (docker swarm init) proporciona el comando de conexión para usar cuando une nuevos Nodos-Worker al Swarm:
- In: root@juan-Aspire-ES1-512:/# docker swarm init
Direcciones-IP-Predeterminadas
-. De forma predeterminada Docker-Swarm utiliza un grupo de direcciones predeterminado 10.0.0.0/8 .Cada Red que no tenga una SubRed especificada tendrá una SubRed asignada secuencial mente desde este grupo. En algunas circunstancias, puede ser conveniente utilizar un grupo de Direcciones-IP predeterminado diferente para las redes.
-. Por ejemplo, si el 10.0.0.0/8 rango predeterminado entra en conflicto con el espacio de direcciones ya asignado en su Red, entonces es conveniente asegurarse de que las Redes usen un rango diferente sin requerir que los usuarios de Docker-Swarm especifiquen cada SubRed con el ( –subnet)comando.
-. Para configurar grupos de direcciones predeterminados personalizados, debe definir grupos en la inicialización de Docker-Swarm usando la ( –default-addr-pool) opción de línea de comando. Para crear el grupo de direcciones personalizado para Docker-Swarm, debe definir al menos un grupo de direcciones predeterminado y una máscara de SubRed del grupo de direcciones predeterminado opcional. Por ejemplo, para el 10.0.0.0/27, use el valor 27.
-. Docker asigna direcciones de SubRed de los rangos de direcciones especificados por la (–default-addr-pool) opción. Por ejemplo, una opción de línea de comando ( –default-addr-pool) 10.10.0.0/16 indica que Docker asignará SubRedes de ese /16 rango de direcciones. Si ( –default-addr-pool-mask-len) no se especificara o se estableciera explícitamente en 24.
-. El rango de la subred proviene de ( –default-addr-pool) , (como 10.10.0.0/16). El tamaño de 16 representa el número de Redes que se pueden crear dentro de ese (default-addr-pool) rango . La ( –default-addr-pool) opción puede ocurrir varias veces y cada opción proporciona direcciones adicionales para que la ventana acoplable las use para las SubRedes-Overlay (superpuestas).
El formato del comando es:
# docker swarm init –default-addr-pool <IP range in CIDR> [–default-addr-pool <IP range in CIDR> –default-addr-pool-mask-length <CIDR value>]
Crear IP predeterminado con un /16 (clase B) para la red 10.20.0.0
# docker swarm init –default-addr-pool 10.20.0.0/16
Crear IP predeterminado con un /16 (clase B) 10.20.0.0 y 10.30.0.0 las redes, crear una máscara de SubRed /26:
# docker swarm init –default-addr-pool 10.20.0.0/16 –default-addr-pool 10.30.0.0/16 –default-addr-pool-mask-length 26
- En este ejemplo:
- docker network create -d overlay net1 resultará 10.20.0.0/26 como la subred asignada para net1, y
- docker network create -d overlay net2 resultará 10.30.0.0/26 como la subred asignada para net2.
- Esto continúa hasta que se agotan todas las SubRedes.
Configure-Advertise-Address
-. Los Nodos-Master usan una dirección-advertise (anunciar) para permitir que otros Nodos-Swarm accedan a la API de Swarmkit y la Redes-Overlay. Los otros Nodos-Swarm deben poder acceder al Nodo-Master en su dirección-Advertise .
-. Si no especifica una dirección-advertise, Docker verifica si el sistema tiene una única dirección IP. Si es así, Docker usa la dirección IP con el puerto de escucha 2377 de forma predeterminada. Si el sistema tiene varias direcciones IP, debe especificar la correcta ( –advertise-addr) para habilitar la comunicación entre Nodos-Master y la Redes-Overlay :
# docker swarm init –advertise-addr <MANAGER-IP>
Union-Actualizar-Token-Swarm
. Los Nodos requieren una ficha secreta para unirse al Modo-Swarm. El token de los Nodos-Worker es diferente del token de los Nodos-Master. Los nodos solo usan la ficha de unión en el momento en que se unen al Modo-Swarm. Girar el token de unión después de que un Nodo ya se haya unido a un Modo-Swarm no afecta la membresía del Swarm del Nodo. La rotación de tokens asegura que un token antiguo no pueda ser utilizado por ningún nuevo Nodo que intente unirse al Modo-Swarm .
- In: root@juan-Aspire-ES1-512:/# docker swarm join-token worker
- Out: To add a worker to this swarm, run the following command:
docker swarm join –token SWMTKN-1-54v5io5jxb01dgs1nh0nv4g5r9cehcxwcffm7fqv9xdab4fudh-f5i0n0x9jj57utto91txiwgh0 192.168.1.36:2377
- In: root@juan-Aspire-ES1-512:/# docker swarm join-token manager
- Out: To add a manager to this swarm, run the following command:
docker swarm join –token SWMTKN-1-54v5io5jxb01dgs1nh0nv4g5r9cehcxwcffm7fqv9xdab4fudh-bxsmxf8jd49639iy7fyehulxs 192.168.1.36:2377
Pase la( –quiet) bandera para imprimir solo el token:
- In: root@juan-Aspire-ES1-512:/# docker swarm join-token –quiet worker
- Out: SWMTKN-1-54v5io5jxb01dgs1nh0nv4g5r9cehcxwcffm7fqv9xdab4fudh-f5i0n0x9jj57utto91txiwgh0
- In: root@juan-Aspire-ES1-512:/# docker swarm join-token –quiet manager
- Out: SWMTKN-1-54v5io5jxb01dgs1nh0nv4g5r9cehcxwcffm7fqv9xdab4fudh-bxsmxf8jd49639iy7fyehulxs
Nota: Tener cuidado con las fichas de unión (token) porque son los secretos necesarios para unirse al Modo-Swarm. En particular, verificar un secreto en el control de versiones es una mala práctica porque permitiría a cualquier persona con acceso al código fuente de la aplicación agregar nuevos Nodos-Swarm. Los tokens de Manager son especialmente sensibles porque permiten que un nuevo Nodo-Manager se una y obtenga el control de todo el Modo-Swarm.
Se recomienda que se rote los tokens de unión en los casos:
- . Si un token se registró por accidente en un sistema de control de versiones, se imprimió accidentalmente en sus registros.
- . Si sospecha que un Nodo se ha visto comprometido.
- . Si desea garantizar que ningún nuevo Nodo pueda unirse al Modo-Swarm.
Nota: Además, es una buena práctica implementar un programa de rotación regular para cualquier secreto, incluidos los tokens de unión de Modo-Swarm. Le recomendamos que rote sus tokens al menos cada 6 meses
. Ejecutar swarm join-token –rotate para invalidar el token antiguo y generar un token nuevo. Especifique si desea rotar el token para Nodos-Worker o Nodos-Master:
- In: root@juan-Aspire-ES1-512:/# docker swarm join-token –rotate worker
- Out: Successfully rotated worker join token.
- Out: To add a worker to this swarm, run the following command:
docker swarm join –token SWMTKN-1-54v5io5jxb01dgs1nh0nv4g5r9cehcxwcffm7fqv9xdab4fudh-ei1e3rmn6ecj5qp2q2t7f2hyn 192.168.1.36:2377
- In: root@juan-Aspire-ES1-512:/# docker swarm join-token –rotate manager
- Out: Successfully rotated manager join token.
- Out: To add a manager to this swarm, run the following command:
docker swarm join –token SWMTKN-1-54v5io5jxb01dgs1nh0nv4g5r9cehcxwcffm7fqv9xdab4fudh-eoxgn3xuhgffsck86m4sinhh4 192.168.1.36:2377
Recopilando :
El Mode-Swarm y Network-Overlay esta Red conectan varios Demonios-Docker y permitiendo los Servicios-Swarm se comuniquen entre si por lo tanto las Redes-Overlay son muy importantes su configuración optima para obtener su máximo rendimiento. Por otro lado los Token seguir los consejos y rotando cuando les toque .
Referencias: (Entorno-Moreluz)
Referencias: (Docker)