【问题标题】:Fault Tolerance and Kubernetes StatefulSet容错和 Kubernetes StatefulSet
【发布时间】:2021-10-16 19:28:17
【问题描述】:

据我了解,大多数数据库都支持使用可以从领导者那里接管的副本,以防领导者不可用。

我想知道在使用 StatefulSet 时在 Kubernetes 环境中拥有这些副本的必要性。一旦 pod 无响应,Kubernetes 会重新启动它,对吗? PVC 将确保数据不会丢失。

领导选举是不是比启动新应用程序更快?

或者说副本的唯一优势是为读取查询提供负载平衡?

【问题讨论】:

    标签: kubernetes distributed-system fault-tolerance


    【解决方案1】:

    据我了解,大多数数据库都支持使用可以从领导者那里接管的副本,以防领导者不可用。

    我想知道在使用 StatefulSet 时在 Kubernetes 环境中拥有这些副本的必要性。

    已从以前的单节点数据库迁移到分布式数据库。分布式数据库通常使用集群中的 3 或 5 个副本/实例运行。这样做的主要目的是高可用性和容错性,例如节点或磁盘故障。如果数据库运行在 Kubernetes 上也是一样的。

    PVC 将确保数据不会丢失。

    PVC 的目的是将应用程序配置与存储系统的选择解耦。这允许您例如尽管您将使用不同的存储系统,但可以在 Google Cloud、AWS 和 Minikube 上部署相同的应用程序而无需任何不同的配置。这不会改变存储系统的工作方式。

    领导选举是不是比启动新应用程序更快?

    许多不同的事情都可能失败,节点、存储系统或网络可以被分区,这样你就无法到达某个节点。

    领导者选举只是集群设置中针对这些问题的一种缓解措施,您还需要以一致的方式复制所有数据。 Raft consensus algorithm 是现代分布式数据库中常见的解决方案。

    或者说副本的唯一优势是为读取查询提供负载平衡?

    这在分布式数据库中可能是一个优势,是的。但根据我的经验,这很少是使用它们的主要原因。

    【讨论】:

      猜你喜欢
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2020-02-10
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多