Docker Sarm集群完成指南

2020-05-03 21:33:07

为了实现高可用性并简化容器的管理,我们可以创建群集。它由安装了坞站引擎的耦合节点组成。

每个节点都安装了坞站引擎,标准程序与单节点坞站相同。

--autolock-true或false-为管理器节点启用自动锁定-本帖子稍后将详细介绍。

--可用性-云处于活动状态(允许新任务)、暂停(不允许执行新任务,但旧任务仍在继续)或排出(不允许执行新任务,如果存在则立即完成旧任务)-为管理器节点设置排出,以创建没有容器的管理器。

--default-addr-pool-默认为10.10.10.0/8-我们可以为使用cluster创建的覆盖网络设置另一个地址池。

[lukas@docker-host1~]$docker sarm init--advertise-addr 10.10.10.20--Listen-addr 10.10.10.20已初始化的群:当前节点(X7mdjbmfz3ttkxbvelriix4yz)现在是管理器。要向此群中添加工作进程,请运行以下命令:docker sarm Join--Token SWMTKN-1-0zwqchv43d2alvl99fgw2mh6cnv7xc8vakspd90yjh4i7eiwwx-cn32plktlwjf8q25azk37ij5v 10.10.10.20:2377要向此群中添加管理器,请运行'。

如果我们稍后需要令牌,并且我们没有写下它们,我们可以从任何管理器节点获取它们。

[lukas@docker-host1~]$docker sarm Join-Token SWMTKN-1-0zwqchv43d2alvl99fgw2mh6cnv7xc8vakspd90yjh4i7eiwwx-956h96o5ivrekolr42k71bgqc要将管理员添加到此群集,请运行以下命令:docker sarm join--Token Manager 10.10.10.20:2377。

[lukas@docker-host1~]$docker sarm Join-Token SWMTKN-1-0zwqchv43d2alvl99fgw2mh6cnv7xc8vakspd90yjh4i7eiwwx-cn32plktlwjf8q25azk37ij5v要将Worker添加到此群中,请运行以下命令:docker sarm join--Token work10.10.10.20:2377。

令牌应该得到很好的保护,它们提供对集群的访问。如果它们在某个地方泄漏,我们应该用命令更改它们(我们可以轮换工人或经理):

[lukas@docker-host1~]$docker sarm Join-Token--Rotate workerSuccessful Rotated Worker Join令牌。要将Worker添加到此群中,请运行以下命令:docker sarm Join--Token SWMTKN-1-0zwqchv43d2alvl99fgw2mh6cnv7xc8vakspd90yjh4i7eiwwx-c7r78dy7kwho1zq3uq7w26xhl 10.10.10.20:2377。

[lukas@docker-host2~]$docker群加入--Token SWMTKN-1-0zwqchv43d2alvl99fgw2mh6cnv7xc8vakspd90yjh4i7eiwwx-cn32plktlwjf8q25azk37ij5v 10.10.10.20:2377此节点作为工作者加入群。

[lukas@docker-host3~]$docker群加入--Token SWMTKN-1-0zwqchv43d2alvl99fgw2mh6cnv7xc8vakspd90yjh4i7eiwwx-cn32plktlwjf8q25azk37ij5v 10.10.10.20:2377此节点作为工作者加入群。

[lukas@docker-host1~]$docker node lsID主机名状态可用性管理器状态引擎VERSIONx7mdjbmfz3ttkxbvelriix4yz*docker-host1.lukas.int Ready Active Leader 19.03.8va779vfr6v115025a15yvuntv docker-host2.lukas.int Ready Active 19.03.8k61h5c7sqzjepifp6ll.。

强烈建议生产群集中至少有三个管理器节点用于HA。此配置在一个管理器节点丢失后仍然有效。在这样的配置下,仍然只有一位经理将成为领导者,其余的将从他那里复制数据,并等待他的崩溃。

此类型的节点仅托管计划容器。可以通过docker node升级命令将其提升为经理。

[lukas@docker-host1~]$docker节点检查docker-host2.lukas.int--BeautyID:va779vfr6v115025a15yvuntwHostname:docker-host2.lukas.int联接位置:2020-04-24 13:44:41.431444118+0000utcStatus:State:Ready Availability:Active Address:10.10.10.21Platform:Operating System:linux Architecture:x86_64Resources:cpu:2 Memory(连接位置:2020-04-24 13:44:41.431444118+0000utcStatus:State:Ready Availability:Active Address:10.10.10.21平台:操作系统:linux架构:x86_64资源:CPU:2内存。

如果没有--Pretty标志,我们会得到描述节点的原始json。我们可以使用--format标志从中获取确切信息。

[lukas@docker-host1~]$docker node update--可用性排出docker-host3.lukas.intdocker-host3.lukas.int[lukas@docker-host1~]$docker节点lsID主机名状态可用性管理器状态引擎VERSIONx7mdjbmfz3ttkxbvelriix4yz*docker-host1.lukas.int Ready Active Leader 19.03.8va779vfr6v。

[lukas@docker-host1~]$docker节点将docker-host3.lukas.intNode docker-host3.lukas.int提升为群中的经理。[lukas@docker-host1~]$docker node lsID主机名状态可用性管理器状态引擎VERSIONx7mdjbmfz3ttkxbvelriix4yz*docker-host1.lukas.int Ready Active Leader 19.03.8va779vfr6v115025a15yvuntv docker-host2.lukas.int Ready Active 19.03.8nqe3eyk55lvmwsmqy5。

如果我们想保护这些密钥,可以启用自动锁定功能。启用后,在节点重启后,需要使用s解密其配置数据