最少数量的 etcd 实例

最少数量的 etcd 实例

我考虑在scaleway 上安装尽可能小的kubernetes 设置。我们的想法是为自己准备一种 MVP,它能够运行我的应用程序组件,并在使用量增长时将其转变为完整的冗余设置。

教程位于https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-at-scaleway-part-1/提到

  • etcd 不应安装在控制器节点上,而应安装在单独的虚拟机上
  • etcd 至少需要三个节点

建议单独安装的原因是什么?我可以在控制器上仅运行一个 etcd 吗?

请考虑我只搜索功能性的设置而不是高可用性。

答案1

etcd 至少需要三个节点

如果您需要容错功能,那么任何具有领导者/主控者来保持一致性的分布式系统都是如此。事实上,您需要奇数个节点来确保如果集群无法均匀地分成两部分(例如由于网络中断),因为当发生这种情况时,双方都无法选举领导者,整个集群将变得不可用。三个恰好是能够容忍单个节点宕机而不影响集群正常运行时间的最小数量。

如果您不需要高可用的系统,您可以使用单个节点,但出于明显的原因,不建议将非高可用的解决方案用于生产使用 - 如果您的系统足够小并且您了解系统崩溃的风险或无法证明额外节点的费用是合理的。

etcd 不应安装在控制器节点上,而应安装在单独的虚拟机上

这也是一个稳定性/可扩展性问题 - 在大多数分布式系统中,您可以自由地将控制器节点与计算节点混合使用,但在高负载下,它们可能会在这种设置中陷入困境。如果您没有足够的节点来创建三节点集群,那么您就没有足够的节点来对系统施加压力,达到重要的程度。

当您的系统增长到节点开始陷入困境或者您可以保证设置额外节点的成本时,这两个问题都可以得到解决。

您可以从 MVP 的一个节点开始,但 kubernetes 和 etcds 指南都面向分布式设置,您只能从在集群中设置它们中真正受益。您在尝试将其从一个节点增长到三个节点时也可能会遇到问题。如果您能负担得起三节点设置,那么我会从这个开始,让所有节点从所有服务开始,当您想进一步扩展设置时将它们分开。

相关内容