Redis 集群与另一个 EKS(Kubernetes) 集群中的另一个主节点

Redis Cluster with another master in another EKS(Kubernetes) cluster

我们正在使用 binami redis-cluster

我们有 2 个不同的数据中心为来自 2 个地区的用户提供服务。两者都通过 AWS 直接连接连接。我们如何使用来自另一个 EKS (Kubernetes) 集群的另一个节点扩展我们的 Redis 集群?因此,另一个 EKS 集群上的 API 服务器可以更快地从 Redis 读取数据。

$ kubectl get all -n redis-ha

NAME READY STATUS RESTARTS AGE
pod/redis-ha-1a-server-0 2/2 Running 0 99d
pod/redis-ha-1a-server-1 2/2 Running 0 99d
pod/redis-ha-1a-server-2 2/2 Running 0 99d

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/redis-ha-1a ClusterIP None 6379/TCP,26379/TCP 316d
service/redis-ha-1a-announce-0 ClusterIP 10.100.201.252 6379/TCP,26379/TCP 316d
service/redis-ha-1a-announce-1 ClusterIP 10.100.157.70 6379/TCP,26379/TCP 316d
service/redis-ha-1a-announce-2 ClusterIP 10.100.170.195 6379/TCP,26379/TCP 316d

NAME READY AGE
statefulset.apps/redis-ha-1a-server 3/3 316d

Redis 开源集群的工作方式 - 它在多个 Redis 实例(碎片)之间传播密钥,因此 运行 另一个区域中的一些 shards/nodes 会加快对某些密钥的访问,并且显着为别人放慢速度。

您可能会考虑在其他区域中使用 运行 read-only 个副本,但这恰恰是 - 只读。

看一下Redis Enterprise Active Active似乎符合你的要求(两个地区的活跃集群节点,允许R/W),但你需要仔细评估你的应用程序以确保最终的一致性型号符合您的要求。