我正在尝试在Kubernetes上设置redis群集。我的一个要求是我的redis集群应该在kubernetes集群重启时具有弹性(由于电源故障等问题)。
我尝试过Kubernetes状态和部署。
在状态设置的情况下,重新启动时会为Pod分配一组新的IP地址,并且由于redis群集在IP地址上工作,因此无法再连接到其他redis实例和表单群集。
如果通过单个redis实例部署使用静态IP的服务,即使我使用静态服务IP地址创建集群,redis也会再次存储Pod的IP,因此在重新启动时它无法连接到其他redis实例和表单集群试。
My redis-cluster statefulset config
My redis-cluster deployment config
答案 0 :(得分:3)
int divisor = _random.Next(150, 200);
int step = 1 + message.Length / divisor;
通过添加对cluster announce node IP and Port
将Redis-4.0.0
设置为redis实例kubernetes部署的静态服务IP。
链接到设置说明:https://github.com/zuxqoj/kubernetes-redis-cluster/blob/master/README-using-statefulset.md
答案 1 :(得分:0)
您是否可以使用DNS名称而不是IP地址?我认为这是将流量路由到状态集中的各个节点的首选方式:
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id