1

我正在尝试在 Kubernetes 上设置 redis 集群。我的要求之一是我的 redis 集群应该在 kubernetes 集群重启的情况下具有弹性(由于电源故障等问题)。

我已经尝试过 Kubernetes statefulset 和部署。
在 statefulset 的情况下,重新启动时会为 Pod 分配一组新的 IP 地址,并且由于 redis 集群在 IP 地址上工作,它无法连接到其他 redis 实例并再次形成集群。
如果服务在单个 redis 实例部署上具有静态 IP,即使我使用静态服务 IP 地址创建集群,redis 也会再次存储 Pod 的 IP,因此重新启动时它无法连接到其他 redis 实例并再次形成集群。

我的 redis-cluster statefulset 配置
我的 redis-cluster 部署配置

4

2 回答 2

3

Redis-4.0.0通过添加对集群通告节点 IP 和端口的支持解决了这个问题

通过 redis 实例 kubernetes 部署设置cluster-announce-ip为服务的静态 IP。

设置说明链接:https ://github.com/zuxqoj/kubernetes-redis-cluster/blob/master/README-using-statefulset.md

于 2017-07-27T17:11:10.157 回答
0

您可以使用 DNS 名称而不是 IP 地址吗?我认为这是将流量路由到有状态集中的各个节点的首选方式:

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id

于 2017-07-13T02:08:15.083 回答