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