目标是使用 kubernetes 为 NodeJS 客户端创建一个高度可用的 Redis 集群。我已经创建了如下架构: 创建了一个包含 3 个节点(从属)的 Kmaster Kubernetes 集群。 然后我创建了有状态集和持久卷(6 个 - 每个 POD 一个)。 然后在每个节点上创建 2 个 Redis pod(3 个主节点,各自主节点的 3 个副本)。
接下来我需要了解 Redis Sentinel 的作用,它如何管理跨节点的 redis-cluster POD 的监控、扩展和 HA。我知道 Sentinel 应该位于每个节点上并完成其工作,但是这里正确的架构应该是什么?
附注我现在已经创建了一个本地设置,但最终会在 Azure 上进行,因此也欢迎任何关于 az 的建议。
谢谢!
最佳答案
从 Azure 的角度来看,您有两个选择,如果您非常特定于选项二但正在寻找 Sentinel 架构部分,那么 IaaS ( Linux VM scale sets ) 和 PaaS 服务中都有业务连续性和高可用性选项超越 Sentinel 组件。
- Azure Redis 缓存 (PaaS),您可以在其中选择和部署所需的服务层(HA 所需的高级层)并连接客户端应用程序。请参阅:Azure Cache for Redis FAQ和 Caching Best Practice .
- 第二个选项是将解决方案(如您所详述)部署为从 Azure VM 构建的 IaaS 解决方案。有许多 Redis Linux VM 镜像可供选择 Azure Marketplace或者可以选择 create a Linux VM OS image从本地解决方案并将其迁移到 Azure。 Sentinel 组件在每台服务器(master、slavea 和 Slaveb,...)上启用。还有网络和其他考虑因素。要从头开始构建系统,请参阅:How to Setup Redis Replication (with Cluster-Mode Disabled) in CentOS 8 – Part 1和 How to Setup Redis For High Availability with Sentinel in CentOS 8 – Part 2
关于azure - 基于 kubernetes 的高可用、冗余 Redis 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62669021/