继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Docker Swarm 进阶:集群容错

慕虎7371278
关注TA
已关注
手记 1250
粉丝 203
获赞 873

webp

Swarm 添加多个 Manager 节点实现容错

Manager 节点的不可用是未知的,可以在 Swarm 集群中维护奇数个 Manager 节点,以防部分 Manger 节点不可用导致整个 Swarm 集群不能正常工作。

节点总数正常数量容错数量
110
220
321
431
532
642
743
853
954

容错数量 = (n - 1) / 2

举个例子,有 5 个 Manager 节点的 Swarm 集群,如果其中 3 个不可用,那么 Manager 节点的数量就不合法。因此在恢复其中一个不可用的 Manager 节点或使用灾难恢复命令恢复群集之前,将无法添加或删除节点。

灾难恢复

灾难不可控制,如果突发事件导致 Manager 节点不可用的数量超过容错数量,为了恢复 Swarm 到正常状态,该如何处理呢?

webp

1、从备份中恢复

备份 Swarm 数据 后, 使用如下步骤恢复 Swarm 集群.


  1. 关闭要恢复 Swarm 集群目标主机上的 Docker;


  1. 在新 Swarm 集群下 移除  /var/lib/docker/swarm 目录内容;


  1. 将备份内容存储到 /var/lib/docker/swarm 目录;

注意:新节点使用与旧的相同的加密密钥进行磁盘存储,此时不能更改磁盘上的存储加密密钥。
在启用自动锁定的 Swarm 情况下,解锁密钥也与旧的 Swarm 相同,并且需要解锁密钥来恢复 Swarm。


  1. 在新节点上启动docker。使用以下命令重新初始化集群,以便该节点不尝试连接到旧集群的一部分的节点,可能旧集群不再存在:

docker swarm init --force-new-cluster

  1. 校验 Swarm 集群的恢复状况是不是与预期的一样,可以使用 docker service ls 来查看。


  1. 如果你使用自动锁,参考  rotate the unlock key


  1. 向新的 Swarm 集群中添加 manager 和 worker 节点。


  1. 向新的 Swarm 集群中添加原来的备份方案。

2、通过重置 Manager 的法定数量恢复集群

集群对故障具有恢复能力,集群可以从任何数量的临时节点故障(机器重启或重启时崩溃)或其他瞬时错误中恢复。然而,如果集群的 Manger 数量少于法定数量,集群不能自动恢复。现有 Worker 节点上的任务继续运行,但不能管理任务,包括扩展或更新服务以及从集群中加入或删除节点。恢复的最佳方法是将丢失的 Manager 节点重新连接。如果故障严重,没有办法连接丢失的 Manager 节点,该如何处理?

目前唯一方法是使用 Manager 节点中的 --force-new-cluster 操作。这个操作会删除当前 Manager 节点以外的所有 Manager 节点。由于现在只有一个 Manager ,因此达到法定数量,Swarm 集群就能正常工作。然后可以提升 Worker 节点成为 Manager,直到拥有理想的 Manager 数量。

# 示例docker swarm init --force-new-cluster --advertise-addr node01:2377

当你使用 --force-new-cluster 标志运行 docker swarm init 命令时,运行命令的 Docker 引擎将成为能够管理和运行服务的集群的 Manager
节点。它拥有先前关于服务和任务的所有信息,Worker 节点仍然是集群的一部分,并且服务仍在运行。然后你需要添加 Manager 节点以实现以前的任务分配,并确保拥有足够的 Manager 来维护高可用性并防止法定数量不足。

Manager 节点的分配

除了维护奇数个 Manager 节点之外,在安置 Manager 时还要注意数据中心的拓扑结构。为了获得最佳的容错性,可以在至少 3 个可用区中分配 Manager 节点,以支持整套机器或常见维护方案的故障。

Manager 个数分配 (在 3 个可用分区)
31-1-1
52-2-1
73-2-2
93-3-3

相关问题

1、Manager 节点为什么推荐使用奇数个?

举例,3 个节点和 4 个节点的容错数量都是 1,5 个节点和 6 个节点的容错数量都是 2,同样的效果,选偶数明显没有任何优势,属于浪费资源。

其他问题欢迎讨论 ~



作者:Anoyi
链接:https://www.jianshu.com/p/5c4a79cc04be


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP