We're using binami redis-cluster
We have 2 different datacenter serving users from 2 regions. Both are connected via AWS direct connect. How can we expand our Redis cluster with another node from another EKS (Kubernetes) Cluster? So the API server on another EKS cluster can read from Redis much faster.
$ 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
The way Redis Open Source Cluster works - it spreads keys across multiple Redis instances (Shards), so running some of the shards/nodes in another region would speed up access to some keys and significantly slow down for others.
You might consider running read-only replicas in the other region, but it would be exactly that - Read Only.
Take a look at Redis Enterprise Active Active that seems to match your requirements (active cluster nodes in both regions, allowing R/W), but you need to carefully evaluate your application to make sure that eventual consistency model matches your requirements.