蜂群¶
管理 Docker Engine's swarm mode 。
要使用任何群方法,首先需要使引擎成为群的一部分。这可以通过使用以下命令初始化新群来实现 init()
,或加入现有的蜂群 join()
。
这些方法可在 client.swarm
:
- class Swarm¶
- get_unlock_key()¶
获取此群管理器的解锁密钥。
- 返回:
A
dict
包含一个UnlockKey
成员
- init()¶
在此引擎上初始化新的群。
- 参数:
advertise_addr (str) -- 通告给其他节点的外部可达地址。这可以是以下形式的地址/端口组合
192.168.1.1:4567
,或后跟端口号的接口,如eth0:4567
。如果省略端口号,则使用侦听地址中的端口号。如果未指定,则在可能的情况下将自动检测。listen_addr (str) -- 用于管理器间通信的侦听地址,以及确定用于VXLAN隧道端点(VTEP)的网络接口。这可以是以下形式的地址/端口组合
192.168.1.1:4567
,或后跟端口号的接口,如eth0:4567
。如果省略端口号,则使用默认的群组侦听端口。默认:0.0.0.0:2377
force_new_cluster (bool) -- 强制创建新的蜂群,即使已经是其中的一部分。默认:FALSE
default_addr_pool (list of str) -- 默认地址池指定全局作用域网络的默认子网池。每个池都应指定为CIDR块,如‘10.0.0.0/8’。默认:无
subnet_size (int) -- SubnetSize指定从默认子网池创建的网络的子网大小。默认:无
data_path_addr (string) -- 用于数据路径流量的地址或接口。例如,192.168.1.1或接口,如eth0。
data_path_port (int) -- 用于数据路径流量的端口号。可接受的端口范围为1024%到49151。如果设置为
None
或0,则将使用默认端口4789。默认:无task_history_retention_limit (int) -- 存储的任务历史记录的最大数量。
snapshot_interval (int) -- 快照之间的日志条目数。
keep_old_snapshots (int) -- 要保留的超过当前快照的快照数。
log_entries_for_slow_followers (int) -- 创建快照后为同步慢关注者而保留的日志条目数。
heartbeat_tick (int) -- 每次心跳之间的滴答量(秒)。
election_tick (int) -- 在没有领导人的情况下触发新选举所需的滴答量(秒)。
dispatcher_heartbeat_period (int) -- 代理向调度程序发送心跳的延迟。
node_cert_expiry (int) -- 节点证书自动过期。
external_ca (dict) -- 用于将签名请求转发到外部证书颁发机构的配置。使用
docker.types.SwarmExternalCA
。name (string) -- 斯沃姆的名字
labels (dict) -- 用户定义的键/值元数据。
signing_ca_cert (str) -- 所有群节点TLS叶证书的所需签名CA证书,采用PEM格式。
signing_ca_key (str) -- 所有群节点TLS叶证书的所需签名CA密钥,采用PEM格式。
ca_force_rotate (int) -- 一个整数,如果尚未指定任何签名CA证书和密钥,则其用途是强制Sarm生成新的签名CA证书和密钥。
autolock_managers (boolean) -- 如果设置了密钥,则生成密钥并使用它锁定存储在管理器上的数据。
log_driver (DriverConfig) -- 用于在业务流程管理器中创建的任务的默认日志驱动程序。
- 返回:
创建的节点的ID。
- 返回类型:
(str)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
示例
>>> client.swarm.init( advertise_addr='eth0', listen_addr='0.0.0.0:5000', force_new_cluster=False, default_addr_pool=['10.20.0.0/16], subnet_size=24, snapshot_interval=5000, log_entries_for_slow_followers=1200 )
- join()¶
使此引擎加入已创建的群。
- 参数:
remote_addrs (
list
) -- 已加入群组的一个或多个管理器节点的地址。join_token (string) -- 加入此群的秘密令牌。
listen_addr (string) -- 如果节点被提升为管理器,则用于管理器间通信的侦听地址,以及确定用于VXLAN隧道端点(VTEP)的网络接口。默认:
'0.0.0.0:2377
advertise_addr (string) -- 通告给其他节点的外部可达地址。这可以是以下形式的地址/端口组合
192.168.1.1:4567
,或后跟端口号的接口,如eth0:4567
。如果省略端口号,则使用侦听地址中的端口号。如果未指定AdvertiseAddr,则将在可能的情况下自动检测它。默认:None
data_path_addr (string) -- 用于数据路径流量的地址或接口。例如,192.168.1.1或接口,如eth0。
- 返回:
True
如果请求通过的话。- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- leave()¶
留下一群人。
- 参数:
force (bool) -- 即使此节点是管理器,也要离开群。默认:
False
- 返回:
True
如果请求通过的话。- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- unlock()¶
解锁一个锁定的蜂群。
- 参数:
key (string) -- 由提供的解锁密钥
get_unlock_key()
- 抛出:
docker.errors.InvalidArgument -- 如果键参数的格式不兼容
docker.errors.APIError -- 如果服务器返回错误。
- 返回:
True 如果请求成功,则返回。
示例
>>> key = client.api.get_unlock_key() >>> client.unlock_swarm(key)
- update()¶
更新蜂群的配置。
它采用的论点与
init()
,除advertise_addr
,listen_addr
,以及force_new_cluster
。此外,它还考虑了以下几个论点:- 参数:
rotate_worker_token (bool) -- 轮换工作进程加入令牌。默认:
False
。rotate_manager_token (bool) -- 轮换经理加入令牌。默认:
False
。rotate_manager_unlock_key (bool) -- 旋转管理器解锁密钥。默认:
False
。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- attrs¶
服务器中此对象的原始表示形式。