互联网技术 / 互联网资讯 · 2024年1月28日 0

云计算核心技术:Docker Swarm 模式灾难恢复教程

从备份恢复

按照备份 swaRM 中的说明备份 swaRM后,使用以下过程将数据恢复到新的 swaRM。

1.为恢复的 swaRM关闭目标主机上的 DockeR。

2.删除/vaR/lib/dockeR/swaRM新群上目录的内容。

3./vaR/lib/dockeR/swaRM使用备份内容恢复目录。

4.在新节点上启动 DockeR。如有必要,解锁群体。使用以下命令重新初始化 swaRM,以便此节点不会尝试连接到属于旧 swaRM且可能不再存在的节点。

dockeR swaRM inIT –foRce-new-clUSteR

5.验证群的状态是否符合预期。这可能包括特定于应用程序的测试或简单地检查输出 dockeR seRvice ls以确保所有预期的服务都存在。

6.如果您使用自动锁定,请旋转解锁钥匙。

7.添加管理器和工作器节点,使您的新集群达到运行能力。

8.在新群上恢复您之前的备份方案。

从失去法定人数中恢复

SwaRM对故障具有弹性,并且可以从任意数量的临时节点故障(机器重新启动或重新启动时崩溃)或其他暂时性错误中恢复。但是,如果失去法定人数,swaRM将无法自动恢复。现有工作节点上的任务继续运行,但无法执行管理任务,包括扩展或更新服务以及从群中加入或删除节点。恢复的最佳方法是使丢失的管理器节点重新联机。如果这是不可能的,请继续阅读一些用于恢复群的选项。

在一群N管理器中,法定人数(大多数)管理器节点必须始终可用。例如,在有5名管理人员的群体中,必须至少有3人在运作并相互沟通。换句话说,swaRM可以容忍(N-1)/2永久故障,超过这个故障就不能处理涉及swaRM管理的请求。这些类型的故障包括数据损坏或硬件故障。

如果您失去了法定人数的管理者,您将无法管理集群。如果您失去了法定人数并尝试对swaRM执行任何管理操作,则会发生错误:

Error Response fRoM daeMon: RPC Error: code = 4 desc = context deadline exceeded

从失去仲裁中恢复的最佳方法是将故障节点重新联机。如果你不能这样做,从这个状态恢复的唯一方法是使用–foRce-new-clUSteR来自管理器节点的操作。这将删除除运行命令的管理器之外的所有管理器。达到法定人数是因为现在只有一名经理。将节点提升为管理器,直到您拥有所需数量的管理器。

从要恢复的节点运行:

dockeR swaRM inIT –foRce-new-clUSteR –adveRtise-addR node01:2377

当您运行dockeR swaRM inIT带有–foRce-new-clUSteR标志的命令时,运行该命令的DockeR引擎将成为能够管理和运行服务的单节点swaRM的管理器节点。管理器拥有有关服务和任务的所有先前信息,工作节点仍然是swaRM的一部分,服务仍在运行。您需要添加或重新添加管理器节点来实现您之前的任务分配,并确保您有足够的管理器来保持高可用性并防止失去仲裁。