【问题标题】:Why 3 masters and 3 workers are needed to set a HA k8s cluster为什么需要 3 个 master 和 3 个 worker 来设置一个 HA k8s 集群
【发布时间】:2019-09-18 10:40:42
【问题描述】:

我正在按照官方文档学习 kubernetes,在 Creating Highly Available clusters with kubeadm 部分中建议至少使用 3 个 master 和 3 个 worker 来设置 HA 集群。

给出此建议时没有解释其背后的原因。换句话说,为什么 2 master 和 2 worker 配置不适合 HA ?

【问题讨论】:

  • 集群是基于仲裁的。 K8 在 etcd 中存储状态。 github.com/etcd-io/etcd/blob/master/Documentation/…
  • hmm ok.. 这句话没看懂可能会失败而不会失去仲裁,但有更多节点可能会失败..
  • 我认为这个博客更好地解释了法定人数中的奇数,medium.com/@bikas.katwal10/…
  • medium.com/better-programming/…。这就解释了为什么 etcd 应该有奇数 - 筏算法...
  • 我认为理解为什么3大师最好的方法是知道raft算法是如何工作的。这里有一个很棒的例子:thesecretlivesofdata.com/raft。这会让你有一个非常清晰的认识。 etcd 使用 raft 算法。您的工人人数并不重要。你可以有一个。但对于失败,最好有 3 个以上的节点。大师通常有奇数有一个适当的法定人数(已经解释)。一旦您了解了 raft 的工作原理,您也会更好地了解适当的法定人数。

标签: kubernetes distributed-computing scalability high-availability


【解决方案1】:

您需要奇数个符合条件的主节点,因此您可以形成适当的仲裁(三分之二,五分之三)。节点的总数实际上并不重要。较小的安装通常使同一节点主节点符合条件并同时保存数据,因此在这种情况下,您希望节点数量不均匀。一旦您转移到具有专用主合格节点的设置,您就可以摆脱这种限制。您也可以运行 4 个法定人数为 3 的节点,但如果任何两个节点死亡,这将使集群不可用。最糟糕的设置是 2 个节点,因为您只能在 quorum 2 的情况下安全地运行,所以如果一个节点死了,您将无法使用。

(这是here 的回答,我认为这是一个很好的解释)

【讨论】:

  • 这是关于分布式计算的一般答案。这个问题是 k8s 特有的:为什么在 k8s 集群中需要奇数个节点(主节点和工作节点)
  • K8s 是基于仲裁的,因此即使这回答了更广泛的分布式计算原因,它仍然适用于 k8s?
  • 我接受了答案,但它是关于控制平面节点的......为什么还需要 3 个工作人员?
  • 我不相信你的工人需要遵守这一点,我认为 3 个工作节点只是建议,你经常会遇到运行偶数个工作节点的集群,认为 3 就足以运行一个正常大小的工作负载(取决于节点大小)
  • 您可以在 Kubernetes 上拥有一个 worker,但最好至少拥有三个以防节点故障,因为集群必须将 pod 从故障节点重新调度到仍然可用的两个节点。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 2020-09-11
  • 2020-05-26
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多