Docker Swarm 初始化
描述 | 初始化 swarm |
---|---|
用法 | docker swarm init [OPTIONS] |
群此命令适用于 Swarm 编排器。
描述
初始化一个 swarm。此命令所针对的 Docker Engine 将成为管理器 在新创建的单节点 swarm 中。
选项
选择 | 违约 | 描述 |
---|---|---|
--advertise-addr | 公布的地址(格式:<ip|interface>[:port] ) | |
--autolock | 启用管理器自动锁定(需要解锁键才能启动已停止的管理器) | |
--availability | active | 节点的可用性 (active ,pause ,drain ) |
--cert-expiry | 2160h0m0s | 节点证书的有效期 (ns|us|ms|s|m|h) |
--data-path-addr | 接口 1.31+用于数据路径流量的地址或接口 (格式:<ip|interface> ) | |
--data-path-port | API 1.40+用于数据路径流量的端口号 (1024 - 49151)。如果未设置任何值或设置为 0,则使用默认端口 (4789)。 | |
--default-addr-pool | API 1.39+ CIDR 格式的默认地址池 | |
--default-addr-pool-mask-length | 24 | API 1.39+ 默认地址池子网掩码长度 |
--dispatcher-heartbeat | 5s | 调度程序检测信号周期 (ns|us|ms|s|m|h) |
--external-ca | 一个或多个证书签名终端节点的规范 | |
--force-new-cluster | 从当前状态强制创建新集群 | |
--listen-addr | 0.0.0.0:2377 | 侦听地址(格式:<ip|interface>[:port] ) |
--max-snapshots | API 1.25+需要保留的额外 Raft 快照数量 | |
--snapshot-interval | 10000 | API 1.25+Raft 快照之间的日志条数 |
--task-history-limit | 5 | 任务历史记录保留限制 |
例子
$ 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)
这--autolock
flag 启用通过加密自动锁定管理器
钥匙。所有 Manager 存储的私钥和数据都受到
加密密钥,没有它就无法访问。确保
安全地存储此密钥,以便在 Manager 重新启动后重新激活 Manager。
将密钥传递给docker swarm unlock
命令重新激活管理器。
您可以通过运行docker swarm update --autolock=false
.
禁用后,不再需要加密密钥来启动
管理器,它将在没有用户干预的情况下自行启动。
配置节点运行状况检查频率 (--dispatcher-heartbeat)
这--dispatcher-heartbeat
flag 设置通知节点
报告他们的健康状况。
使用外部证书颁发机构 (--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-addr)
这--advertise-addr
flag 指定将公布到的地址
用于 API 访问和覆盖网络的 swarm 的其他成员。如果
unspecified,Docker 将检查系统是否具有单个 IP 地址,并使用
该 IP 地址与侦听端口(请参阅--listen-addr
).如果系统
具有多个 IP 地址,--advertise-addr
,以便
为管理器间通信和覆盖网络选择了正确的地址
联网。
还可以指定一个网络接口来通告该
接口的地址;例如--advertise-addr eth0:2377
.
指定端口是可选的。如果该值是裸 IP 地址或接口 name,则使用默认端口 2377。
指定数据流量接口 (--data-path-addr)
这--data-path-addr
flag 指定全局范围 network 的地址
驱动程序将发布到其他节点以访问容器
在此节点上运行。使用此参数,您可以将容器的
来自集群管理流量的数据流量。
如果未指定,则使用 IP 地址或通告地址的接口。
设置--data-path-addr
不限制哪些接口或源 IP
地址。似--advertise-addr
这
此标志的目的是通知 Swarm 的其他成员
地址,用于控制平面流量。限制对 VXLAN 端口的访问
中,使用防火墙规则。
配置数据流量的端口号 (--data-path-port)
这--data-path-port
flag 允许您配置要使用的 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-pool
flag 指定全局范围的默认子网池
网络。例如,要指定两个地址池:
$ 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-interval
flag 指定要允许的日志条目数
在 Raft 快照之间。将此值设置为较高的值将触发快照
频率较低。快照压缩 Raft 日志并允许更高效
将国家移交给新的经理。但是,存在性能成本
经常拍摄快照。
配置管理器的可用性 (--availability)
这--availability
flag 指定节点在此时的可用性
节点加入主节点。可能的 availability 值为active
,pause
或drain
.
此标志在某些情况下很有用。例如,集群可能希望
具有不用作 Worker 节点的专用 Manager 节点。您可以执行此作
通过--availability=drain
自docker swarm init
.