恢复 docker 群
restore a docker swarm
假设我们有一个 swarm1(1 个经理和 2 个工人),我将每天备份这个 swarm,所以如果有一天出现问题,我可以将所有 swarm 恢复到一个新的一个(swarm2 = 1 名经理和 2 名工人)。
我按照 here 的描述进行操作,但似乎在恢复时,新管理器获得与旧管理器相同的令牌,结果:2 名工作人员断开连接,我最终得到了一个新的 swarm2有 1 名经理和 0 名工人。
有什么想法/解决方案吗?
我不建议恢复工人。假设你只失去了你的单一经理,只是 docker swarm leave
的工人,然后重新加入。然后在管理器上,您可以随时使用 docker node rm
.
清理旧工人(不影响正常运行时间)
请注意,如果您失去了管理员法定人数,这并不意味着您正在 运行 的应用程序停止运行,因此您需要让您的员工继续工作并向用户提供您的应用程序,直到你修理你的经理。
如果你的最后一个管理器失败或者你失去了法定人数,那么专注于恢复 raft DB 以便群管理器再次拥有法定人数。然后重新加入工作人员,或并行创建新工作人员,并且仅在新工作人员是 运行 您的应用程序时才关闭旧工作人员。这是 great talk by Laura Frank that goes into it at DockerCon.
假设我们有一个 swarm1(1 个经理和 2 个工人),我将每天备份这个 swarm,所以如果有一天出现问题,我可以将所有 swarm 恢复到一个新的一个(swarm2 = 1 名经理和 2 名工人)。
我按照 here 的描述进行操作,但似乎在恢复时,新管理器获得与旧管理器相同的令牌,结果:2 名工作人员断开连接,我最终得到了一个新的 swarm2有 1 名经理和 0 名工人。
有什么想法/解决方案吗?
我不建议恢复工人。假设你只失去了你的单一经理,只是 docker swarm leave
的工人,然后重新加入。然后在管理器上,您可以随时使用 docker node rm
.
请注意,如果您失去了管理员法定人数,这并不意味着您正在 运行 的应用程序停止运行,因此您需要让您的员工继续工作并向用户提供您的应用程序,直到你修理你的经理。
如果你的最后一个管理器失败或者你失去了法定人数,那么专注于恢复 raft DB 以便群管理器再次拥有法定人数。然后重新加入工作人员,或并行创建新工作人员,并且仅在新工作人员是 运行 您的应用程序时才关闭旧工作人员。这是 great talk by Laura Frank that goes into it at DockerCon.