Currently KubeDB Redis engine supports two modes:
But Redis supports an intermediate mode which isn't supported by KubeDB - high availability without sharding:
https://redis.io/topics/sentinel
https://redislabs.com/redis-features/high-availability
Here's a brief comparison of Redis Cluster with Sentinel (taken from https://alex.dzyoba.com/blog/redis-ha/)
Cluster Pros:
Shards data across multiple nodes
Has replication support
Has builtin failover of the masterCluster Cons:
Not every library supports it
May not be as robust (yet) as standalone Redis or Sentinel
Introduces an extra network hop in case we missed the shard.
Our use-case:
We want to connect to Redis in Kubernetes from external servers. In order to expose Redis service we use corresponding feature of Nginx ingress controller (https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/exposing-tcp-udp-services.md). It provides a single entrypoint for working with Redis database. But "Cluster" mod requires direct connection to a particular Redis shard master IP and possibility to handle "MOVED" responses, what is unachievable for an external applications. Thus we have a single option - "standalone" mode which doesn't provide any availability guarantees.
If KubeDB Redis engine supported HA based on Sentinel, it would work perfectly for us.
Issue-Label Bot is automatically applying the label feature_request to this issue, with a confidence of 0.79. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
Hi Kubedb team,
We have the same feature request about this.
Our application run in external server and want to connect the kubedb/redis cluster in different k8s cluster, but as @spa-87 said, the 'redirect' and 'MOVED' should be blocked and failed due to unachievable network connection.
Do you have any plan/suggestion for this use-case?
Thanks a lot!
Hi @spa-87 ,
How do you work out the use-case(external connection) which you mentioned above now?
Could you please share your thought/method with me? I'm struggling with this.
Thanks a lot!
Most helpful comment
Issue-Label Bot is automatically applying the label
feature_requestto this issue, with a confidence of 0.79. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!Links: app homepage, dashboard and code for this bot.