【发布时间】:2019-03-15 22:41:23
【问题描述】:
我目前通过 kops 在 AWS 上部署了一个集群 HA(具有三个多个 master,每个 AZ 一个)。 Kops 在每个主节点上部署了一个 K8S 集群,其中包含一个用于 etcd-events 的 pod 和一个用于 etcd-server 的 pod。每个 pod 都使用一个挂载的卷。
一切正常,例如当一个主节点死亡时,自动缩放组在同一个 AZ 中创建另一个主节点,该节点恢复其卷并将自身加入集群。我遇到的问题是关于灾难,AZ 的失败。
如果 AZ 出现问题会怎样?我定期拍摄卷 EBS 快照,但如果我从快照创建新卷(使用要发现并附加到新实例的正确标签),新实例会挂载新卷,但在那之后,它就无法加入旧集群。我的计划是创建一个由 CloudWatch 事件触发的 lambda 函数,该事件在两个安全 AZ 之一中创建一个新的主实例,该卷是从旧 EBS 卷的快照安装的。但是这个计划有错误,因为我似乎忽略了关于 Raft、Etcd 和它们的行为的一些东西。 (我这么说是因为其他主节点出现错误,并且新节点无法将自己加入集群)。
建议?
如何从理论上恢复单个AZ灾难的情况和所有master死亡的情况?我有 EBS 快照。够用吗?
【问题讨论】:
标签: amazon-web-services kubernetes etcd kops disaster-recovery