【发布时间】:2018-06-18 09:56:11
【问题描述】:
哨兵:Docs says
Redis Sentinel 为 Redis 提供高可用性。在实际中 这意味着使用 Sentinel 您可以创建 Redis 部署 它可以在没有人为干预的情况下抵抗某些类型的故障。
我认为我们可以在不部署Sentinal 的情况下实现redis 集群(在K8s 中)的Sentinal 功能?我从 docs 中获取哨兵能力,并从 K8s 中抛出一些反点。
-
Monitoring- Sentinel 不断检查您的主从实例是否按预期工作。- 我正在考虑
working as expected表示吊舱向上或向下。当您部署为Deployment(Replicasets) 甚至StatefulSets时,这在 K8s 中是非常原生的
- 我正在考虑
-
Notification- Sentinel 可以通过 API 通知系统管理员和另一台计算机程序,其中一个受监控的 Redis 实例有问题。- 我们不能用
Operators来做吗?(从redis集群状态等角度来看)
- 我们不能用
-
Automatic failover- 如果一个 master 没有按预期工作,Sentinel 可以启动一个故障转移过程,其中一个 slave 被提升为 master,其他额外的 slave 被重新配置为使用新的 master,并且使用 Redis 服务器的应用程序通知新的连接时使用的地址。- 我正在考虑
not working as expected表示redis pod 已关闭。在这种情况下,如果我们在Operators/StatefulSet+Headless Service的帮助下部署 redis。即使 pod 重启,我们也有稳定的主/从网络 ID。
- 我正在考虑
-
Configuration provider- Sentinel 充当客户端服务发现的权威来源:客户端连接到 Sentinel 以请求负责给定服务的当前 Redis 主机的地址。如果发生故障转移,Sentinels 将报告新地址。- 正如我在上面所说的,我们有稳定的网络 ID/名称/IP。客户端始终可以指向主节点。
我是 redis 的新手。如果有任何问题,请指导我。谢谢。
更新1
我的目标是避免哨兵并拥有HA。(主要是master故障转移)
【问题讨论】:
标签: redis kubernetes redis-cluster kubernetes-statefulset