Compartir comentarios
Las respuestas se generan en base a la documentación.

docker swarm init

DescripciónInicializa un swarm
Usodocker swarm init [OPTIONS]

Swarm Este comando funciona con el orquestador de Swarm.

Descripción

Inicializa un swarm. El motor Docker (Docker Engine) al que se dirige este comando se convierte en administrador (manager) en el swarm de un solo nodo recién creado.

Opciones

OpciónPredeterminadoDescripción
--advertise-addrDirección anunciada (formato: <ip|interfaz>[:puerto])
--autolockHabilita el bloqueo automático del administrador (requiriendo una clave de desbloqueo para iniciar un administrador detenido)
--availabilityactiveDisponibilidad del nodo (active, pause, drain)
--cert-expiry2160h0m0sPeriodo de validez para los certificados de nodo (ns|us|ms|s|m|h)
--data-path-addrAPI 1.31+ Dirección o interfaz a utilizar para el tráfico de datos (formato: <ip|interfaz>)
--data-path-portAPI 1.40+ Número de puerto a utilizar para el tráfico de datos (1024 - 49151). Si no se establece ningún valor o se establece en 0, se utiliza el puerto predeterminado (4789).
--default-addr-poolAPI 1.39+ pool de direcciones predeterminado en formato CIDR
--default-addr-pool-mask-length24API 1.39+ longitud de la máscara de subred del pool de direcciones predeterminado
--dispatcher-heartbeat5sPeriodo de latido (heartbeat) del despachador (ns|us|ms|s|m|h)
--external-caEspecificaciones de uno o más endpoints de firma de certificados
--force-new-clusterFuerza la creación de un nuevo clúster a partir del estado actual
--listen-addr0.0.0.0:2377Dirección de escucha (formato: <ip|interfaz>[:puerto])
--max-snapshotsAPI 1.25+ Número de snapshots de Raft adicionales a conservar
--snapshot-interval10000API 1.25+ Número de entradas de registro entre snapshots de Raft
--task-history-limit5Límite de retención del historial de tareas

Ejemplos

$ docker swarm init --advertise-addr 192.168.99.121

Swarm initialized: current node (bvz81updecsj6wjz393c09vti) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-aabbccdd00112233aabbccdd00112233aabbccdd00112233aa-aabbccdd00112233... 172.17.0.2:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

El comando docker swarm init genera dos tokens aleatorios: un token de trabajador (worker) y un token de administrador (manager). Al unir un nuevo nodo al swarm, el nodo se une como un nodo trabajador o administrador según el token que pases a swarm join.

Después de crear el swarm, puedes mostrar o rotar el token usando swarm join-token.

Proteger las claves y los datos del administrador (--autolock)

La opción --autolock habilita el bloqueo automático de los administradores con una clave de cifrado. Las claves privadas y los datos almacenados por todos los administradores están protegidos por la clave de cifrado impresa en la salida y son inaccesibles sin ella. Asegúrate de guardar esta clave de forma segura para poder reactivar un administrador después de que se reinicie. Pasa la clave al comando docker swarm unlock para reactivar el administrador. Puedes desactivar el bloqueo automático ejecutando docker swarm update --autolock=false. Tras desactivarlo, ya no será necesaria la clave de cifrado para iniciar el administrador y este se iniciará por sí solo sin intervención del usuario.

Configurar la frecuencia del control de salud de los nodos (--dispatcher-heartbeat)

La opción --dispatcher-heartbeat establece la frecuencia con la que se indica a los nodos que informen sobre su estado de salud.

Utilizar una autoridad de certificación externa (--external-ca)

Esta opción configura el swarm para utilizar una CA externa para emitir certificados de nodo. El valor tiene la forma protocol=X,url=Y. El valor de protocol especifica qué protocolo debe utilizarse para enviar solicitudes de firma a la CA externa. Actualmente, el único valor compatible es cfssl. La URL especifica el endpoint donde se deben enviar las solicitudes de firma.

Forzar el reinicio del nodo como un administrador en modo único (--force-new-cluster)

Esta opción fuerza a un nodo existente que formaba parte de un quórum perdido a reiniciarse como un Administrador de nodo único sin perder sus datos.

Especificar la interfaz para el tráfico entrante del plano de control (--listen-addr)

El nodo escucha el tráfico entrante del administrador de swarm en esta dirección. El valor predeterminado es escuchar en 0.0.0.0:2377. También es posible especificar una interfaz de red para escuchar en la dirección de esa interfaz; por ejemplo, --listen-addr eth0:2377.

Especificar un puerto es opcional. Si el valor es una dirección IP simple o un nombre de interfaz, se utiliza el puerto predeterminado 2377.

La opción --advertise-addr especifica la dirección que se anunciará a otros miembros del swarm para el acceso a la API y la red superpuesta (overlay). Si no se especifica, Docker comprobará si el sistema tiene una única dirección IP y utilizará esa dirección IP con el puerto de escucha (consulta --listen-addr). Si el sistema tiene múltiples direcciones IP, se debe especificar --advertise-addr para que se elija la dirección correcta para la comunicación entre administradores y la red superpuesta.

También es posible especificar una interfaz de red para anunciar la dirección de esa interfaz; por ejemplo, --advertise-addr eth0:2377.

Especificar un puerto es opcional. Si el valor es una dirección IP simple o un nombre de interfaz, se utiliza el puerto predeterminado 2377.

Especificar la interfaz para el tráfico de datos (--data-path-addr)

La opción --data-path-addr especifica la dirección que los controladores de red de alcance global publicarán hacia otros nodos para llegar a los contenedores que se ejecutan en este nodo. Con este parámetro puedes separar el tráfico de datos del contenedor del tráfico de administración del clúster.

Si no se especifica, se utiliza la dirección IP o la interfaz de la dirección anunciada.

Establecer --data-path-addr no restringe a qué interfaces o direcciones IP de origen se vincula el socket VXLAN. Al igual que con --advertise-addr, el propósito de esta opción es informar a otros miembros del swarm sobre qué dirección utilizar para el tráfico del plano de control. Para restringir el acceso al puerto VXLAN del nodo, utiliza reglas de firewall.

Configurar el número de puerto para el tráfico de datos (--data-path-port)

La opción --data-path-port te permite configurar el número de puerto UDP a utilizar para el tráfico de datos. El número de puerto proporcionado debe estar dentro del rango 1024 - 49151. Si esta opción no está establecida, o si está establecida en 0, se utiliza el número de puerto predeterminado 4789. El puerto de la ruta de datos solo se puede configurar al inicializar el swarm y se aplica a todos los nodos que se unan al swarm. El siguiente ejemplo inicializa un nuevo Swarm y configura el puerto de la ruta de datos en el puerto UDP 7777;

$ docker swarm init --data-path-port=7777

Once el swarm está inicializado, utiliza el comando docker info para verificar que el puerto esté configurado:

$ docker info
<...>
ClusterID: 9vs5ygs0gguyyec4iqf2314c0
Managers: 1
Nodes: 1
Data Path Port: 7777
<...>

Especificar los pools de subred predeterminados (--default-addr-pool)

La opción --default-addr-pool especifica los pools de subred predeterminados para las redes de alcance global. Por ejemplo, para especificar dos pools de direcciones:

$ docker swarm init \
  --default-addr-pool 30.30.0.0/16 \
  --default-addr-pool 40.40.0.0/16

Utiliza la opción --default-addr-pool-mask-length para especificar la longitud de máscara predeterminada para los pools de subred.

Establecer el límite del número de snapshots a conservar (--max-snapshots)

Esta opción establece el número de snapshots antiguos de Raft a conservar además de los snapshots de Raft actuales. Por defecto, no se conservan snapshots antiguos. Esta opción se puede utilizar para la depuración o para almacenar snapshots antiguos del estado del swarm para fines de recuperación ante desastres.

Configurar el intervalo de registro de snapshots de Raft (--snapshot-interval)

La opción --snapshot-interval especifica cuántas entradas de registro permitir entre snapshots de Raft. Establecer un número alto hará que los snapshots se realicen con menos frecuencia. Los snapshots compactan el registro de Raft y permiten una transferencia de estado más eficiente a los nuevos administradores. Sin embargo, realizar snapshots con frecuencia conlleva un costo de rendimiento.

Configurar la disponibilidad de un administrador (--availability)

La opción --availability especifica la disponibilidad del nodo en el momento en que se une a un nodo maestro. Los valores de disponibilidad posibles son active, pause o drain.

Esta opción es útil en ciertas situaciones. Por ejemplo, es posible que un clúster prefiera tener nodos administradores dedicados que no sirvan como nodos trabajadores. Puedes hacer esto pasando --availability=drain a docker swarm init.