据我所知,大多数数据库都允许使用副本,在没有领导者的情况下,这些副本可以取代领导者。
当使用StatefulSet时,我想知道在Kubernetes环境中拥有这些副本的必要性。一旦吊舱失去反应,库伯内特斯就会重新启动它,对吗?PVC会确保数据不会丢失。
难道领导选举比提出新的申请要快吗?
还是副本的唯一优势是为读取查询提供负载平衡?
发布于 2021-10-16 21:33:47
据我所知,大多数数据库都允许使用副本,在没有领导者的情况下,这些副本可以取代领导者。当使用StatefulSet时,我想知道在Kubernetes环境中拥有这些副本的必要性。
已经从以前的单节点数据库转向分布式数据库。分布式数据库通常使用集群中的3个或5个副本/实例运行。其主要目的是高可用性和容错性,例如节点或磁盘故障。如果数据库是在Kubernetes上运行的,情况也是一样的。
PVC将确保数据不会丢失。
PVCs的目的是将应用程序配置与存储系统的选择解耦。这使得您可以在Google、AWS和Minikube上部署相同的应用程序,而不需要任何不同的配置,尽管您将使用不同的存储系统。这不会改变存储系统的工作方式。
难道领导选举比提出新的申请要快吗?
许多不同的事情都可能失败,节点、存储系统或网络都可以被分割,这样就无法到达某个节点。
在集群设置中,领导人选举只是缓解这些问题的一部分,您还需要以一致的方式复制所有数据。Raft共识算法是现代分布式数据库中常见的解决方案。
还是副本的唯一优势是为读取查询提供负载平衡?
这在分布式数据库中可能是一个优势,是的。但在我的经验中,这很少是使用它们的主要原因。
https://stackoverflow.com/questions/69598920
复制相似问题