【发布时间】:2022-01-23 20:55:32
【问题描述】:
图表总是比最后一句话更好,所以这是我想做的:
总结一下:
- 我想在我的 K8S 集群外部(或内部,这里不相关)有一个 Redis 主实例
- 我想要一个 Redis 从属实例每个节点复制主实例
- 我希望在删除节点时,Redis 从属 Pod 会从主 Pod 中注销
- 我希望在添加节点的时候,在节点上添加一个Redis slave pod并注册到master上
- 我希望一个节点中的所有 Pod 只消耗本地 Redis 从站的数据(我认为是简单的部分)
我为什么想要这样的架构?
- 我想利用 Redis 主/从复制来避免自己处理缓存失效
- 我希望对 Redis 缓存进行超低延迟调用,因此每个节点拥有一个从属设备是我能获得的最佳效果(在本地主机网络上调用)
是否可以自动化此类部署,例如使用 Helm?是否有文档资源来制作具有干净的动态主/从绑定/解除绑定的架构?
最重要的是,这种架构是我想做的一个好主意吗?有没有比这更快的替代方案?
【问题讨论】:
-
使用额外的内存缓存层怎么样?我知道您提到您不想处理缓存失效等问题,但根据用例,它可能是有意义的。很可能您已经考虑过这一点,但想提一下,因为将 redis slave 与应用程序 pod 一起扩展似乎成本太高,而且仍然意味着网络开销(即使超过 localhost)。
标签: kubernetes redis architecture master-slave helm3