CockroachDB 有一个相对简单的集群机制,您可以使用指向其他 cockroach 机器的主机名的命令行选项来初始化数据库(但是,这个问题确实与任何对等集群数据库相关)。
Cockroach 的好处之一是您可以在一个大陆内跨区域进行集群。Cockroach 自己发布了一个很好的 k8s 配置来在有状态集上建立一个 cockroach 集群。看到这个配置。
我正在尝试找到一种将蟑螂集群跨越不同区域的两个 GKE 集群的方法。区域之间的 DNS 和连接并不是真正的问题,但我不知道如何解决有状态集实例。在集群内部,它们是 cockroachdb-1.cockroach。有什么方法可以让这些跨集群寻址?一种选择是将第二个集群中的节点端口和点实例公开给具有第一个集群中端口的机器。这似乎很骇人听闻,如果机器出现故障,则表示单点故障。关于如何做到这一点的任何其他想法?我也探索了 k8s federation,但我认为它也不能真正解决这个问题(尽管我可能是错的)。
最后一个选择是通过负载均衡器公开每个实例......我不太喜欢这样,但也许这是唯一的方法?