Docker Swarm 初始化

描述初始化 swarm
用法docker swarm init [OPTIONS]

此命令适用于 Swarm 编排器。

描述

初始化一个 swarm。此命令所针对的 Docker Engine 将成为管理器 在新创建的单节点 swarm 中。

选项

选择违约描述
--advertise-addr公布的地址(格式:<ip|interface>[:port])
--autolock启用管理器自动锁定(需要解锁键才能启动已停止的管理器)
--availabilityactive节点的可用性 (active,pause,drain)
--cert-expiry2160h0m0s节点证书的有效期 (ns|us|ms|s|m|h)
--data-path-addr接口 1.31+用于数据路径流量的地址或接口 (格式:<ip|interface>)
--data-path-portAPI 1.40+用于数据路径流量的端口号 (1024 - 49151)。如果未设置任何值或设置为 0,则使用默认端口 (4789)。
--default-addr-poolAPI 1.39+ CIDR 格式的默认地址池
--default-addr-pool-mask-length24API 1.39+ 默认地址池子网掩码长度
--dispatcher-heartbeat5s调度程序检测信号周期 (ns|us|ms|s|m|h)
--external-ca一个或多个证书签名终端节点的规范
--force-new-cluster从当前状态强制创建新集群
--listen-addr0.0.0.0:2377侦听地址(格式:<ip|interface>[:port])
--max-snapshotsAPI 1.25+需要保留的额外 Raft 快照数量
--snapshot-interval10000API 1.25+Raft 快照之间的日志条数
--task-history-limit5任务历史记录保留限制

例子

$ 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-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 172.17.0.2:2377

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

docker swarm init命令生成两个随机令牌:一个 worker 令牌和 经理令牌。当您将新节点加入 swarm 时,该节点将作为 worker 或 manager 节点,具体取决于您传递给 swarm 的令牌 加入

创建 swarm 后,您可以使用 swarm join-token 显示或轮换令牌。

保护管理器密钥和数据 (--autolock)

--autolockflag 启用通过加密自动锁定管理器 钥匙。所有 Manager 存储的私钥和数据都受到 加密密钥,没有它就无法访问。确保 安全地存储此密钥,以便在 Manager 重新启动后重新激活 Manager。 将密钥传递给docker swarm unlock命令重新激活管理器。 您可以通过运行docker swarm update --autolock=false. 禁用后,不再需要加密密钥来启动 管理器,它将在没有用户干预的情况下自行启动。

配置节点运行状况检查频率 (--dispatcher-heartbeat)

--dispatcher-heartbeatflag 设置通知节点 报告他们的健康状况。

使用外部证书颁发机构 (--external-ca)

此标志将 swarm 设置为使用外部 CA 颁发节点证书。 该值采用以下格式protocol=X,url=Y.的值protocol指定 应该使用什么协议向外部 CA 发送签名请求。 目前,唯一支持的值是cfssl.URL 指定终端节点 应提交签名请求的位置。

强制重启节点作为单模式管理器 (--force-new-cluster)

此标志强制现有节点,该节点是 丢失的仲裁的一部分 作为单节点 Manager 重新启动,而不会丢失其数据。

指定入站控制平面流量的接口 (--listen-addr)

该节点侦听此地址上的入站 swarm manager 流量。默认的 就是要听0.0.0.0:2377.也可以指定网络 interface 来监听该接口的地址;例如--listen-addr eth0:2377.

指定端口是可选的。如果该值是裸 IP 地址或接口 name,则使用默认端口 2377。

--advertise-addrflag 指定将公布到的地址 用于 API 访问和覆盖网络的 swarm 的其他成员。如果 unspecified,Docker 将检查系统是否具有单个 IP 地址,并使用 该 IP 地址与侦听端口(请参阅--listen-addr).如果系统 具有多个 IP 地址,--advertise-addr,以便 为管理器间通信和覆盖网络选择了正确的地址 联网。

还可以指定一个网络接口来通告该 接口的地址;例如--advertise-addr eth0:2377.

指定端口是可选的。如果该值是裸 IP 地址或接口 name,则使用默认端口 2377。

指定数据流量接口 (--data-path-addr)

--data-path-addrflag 指定全局范围 network 的地址 驱动程序将发布到其他节点以访问容器 在此节点上运行。使用此参数,您可以将容器的 来自集群管理流量的数据流量。

如果未指定,则使用 IP 地址或通告地址的接口。

设置--data-path-addr不限制哪些接口或源 IP 地址。似--advertise-addr这 此标志的目的是通知 Swarm 的其他成员 地址,用于控制平面流量。限制对 VXLAN 端口的访问 中,使用防火墙规则。

配置数据流量的端口号 (--data-path-port)

--data-path-portflag 允许您配置要使用的 UDP 端口号 用于数据路径流量。提供的端口号必须在 1024 - 49151 之间 范围。如果未设置此标志,或者如果它设置为 0,则默认端口号 4789 的调用。数据路径端口只能在初始化 swarm 的 API 实例,并应用于加入 swarm 的所有节点。以下示例 初始化一个新的 Swarm,并将数据路径端口配置为 UDP 端口 7777;

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

初始化 swarm 后,使用docker info命令验证 端口配置如下:

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

指定默认子网池 (--default-addr-pool)

--default-addr-poolflag 指定全局范围的默认子网池 网络。例如,要指定两个地址池:

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

使用--default-addr-pool-mask-length标志指定默认子网 子网池的 pools 掩码长度。

设置要保留的快照数量限制 (--max-snapshots)

此标志设置除了 当前 Raft 快照。默认情况下,不会保留任何旧快照。此选项 可用于调试,或存储 Swarm 状态的旧快照 灾难恢复目的。

配置 Raft 快照日志间隔 (--snapshot-interval)

--snapshot-intervalflag 指定要允许的日志条目数 在 Raft 快照之间。将此值设置为较高的值将触发快照 频率较低。快照压缩 Raft 日志并允许更高效 将国家移交给新的经理。但是,存在性能成本 经常拍摄快照。

配置管理器的可用性 (--availability)

--availabilityflag 指定节点在此时的可用性 节点加入主节点。可能的 availability 值为active,pausedrain.

此标志在某些情况下很有用。例如,集群可能希望 具有不用作 Worker 节点的专用 Manager 节点。您可以执行此作 通过--availability=draindocker swarm init.