我想知道当我们将PostgreSQL这样的数据库设置为Kubernetes状态集,并配置副本> 1时会发生什么。我的问题可能是显而易见的,也可能是完全疯狂的。
拥有多个数据库副本的明显原因是为了负载平衡(横向扩展)或非单点故障。
但是,其他一些东西会发生什么,比如逻辑复制或pg-cron?因此,如果在数据库中我们有订阅(来自其他数据库/发布者),这个过程会发生> 1次吗?另一方面,如果在数据库中,我们有计划由pg-cron每小时触发一次的函数或过程,那么对于每个副本,这个过程会发生> 1次吗?
如果两个或多个副本指向同一个PV,就会发生这种情况,因此为了避免这种情况,我们应该使用卷声明模板。但是,副本之间的一切都将不同(从数据Angular 来看)。
这是我们应该在数据库副本之间使用主从复制的时候吗?
上述是否正确?
1条答案
按热度按时间ruoxqz4g1#
让一个statefulset运行一个副本> 1的数据库与在两个不同的服务器上运行一个数据库的两个示例没有什么不同(从高层次上看)。
你不会从盒子里得到任何神奇的行为:如果您需要HA设置,则需要关注复制、故障转移以及与此相关一切。
如果你想走这条路,有一些项目旨在在kubernetes上运行HA postgres,例如https://postgres-operator.readthedocs.io/en/latest/