【发布时间】:2018-04-18 12:15:39
【问题描述】:
我对多主机 Kubernetes 在发生不同类型故障时的行为感兴趣,尤其是当主机位于不同机架上时。
-
场景:
2 个机架,R1,R2。
-
API 大师:
- R1 上的 M1,R2 上的 M2。
-
工作节点:
- R1 上的 W1,R2 上的 W2。
-
等:
- 一个完全独立的 HA Etcd 集群,包含 3 个节点(即它不在 API 主节点上运行)。
我的失败问题基本上是关于脑裂的场景:
如果 M1 是活动的主设备,并且 R1 失去与 Etcd 和 R2 的连接,但 R2/M2 与 Etcd 有连接,会发生什么情况?即是什么具体导致了领导选举?
如果 R1/W1 上有 Pod P1,M1 是 active master,R1 与 R2 和 Etcd 断开连接,会发生什么? P1 是继续运行,还是被杀死? M2 是否在 R2 上启动 P (P2) 的单独实例?如果可以,P1 和 P2 可以同时运行吗?
如果 R2/W2 上有一个 Pod P2 并且 M1 是活动的 master(即 pod 位于与 master 不同的机架上)并且 R1 失去了与 R2 和 Etcd 的连接,那么 P2 会发生什么?它会继续运行并由 M2 接管吗?
【问题讨论】:
标签: kubernetes openshift etcd splitbrain