【问题标题】:Highly available, redundant Redis-cluster over kubernetesKubernetes 上的高可用、冗余 Redis 集群
【发布时间】:2020-07-01 03:03:41
【问题描述】:

目标是使用 kubernetes 为 nodeJS 客户端创建一个高可用的 redis 集群。我已经创建了如下架构: 创建了一个具有 3 个节点(从属)的 Kmaster Kubernetes 集群。 然后我创建了 statefulsets 和持久卷(6 - 每个 POD 一个)。 然后在每个节点上创建 Redis pod 2(3 个 Master,3 个各自 master 的副本)。

我需要了解 Redis Sentinel 的角色,它如何管理跨节点的 redis-cluster POD 的监控、扩展和 HA。我知道 Sentinel 应该在每个节点上并完成其工作,但这里的正确架构应该是什么?

附:我现在已经创建了一个本地设置,但最终这会在 Azure 上进行,因此也欢迎任何关于 az 的建议。

谢谢!

【问题讨论】:

    标签: azure kubernetes redis high-availability redis-sentinel


    【解决方案1】:

    从 Azure 的角度来看,您有两个选项,如果您非常特定于选项二但正在寻找 Sentinel 架构部分,那么 IaaS (Linux VM scale sets) 和 PaaS 服务中都有业务连续性和高可用性选项,超越 Sentinel 组件。

    1. Azure Cache for Redis (PaaS),您可以在其中选择和部署所需的服务层(HA 需要高级层)并连接您的客户端应用程序。请参阅:Azure Cache for Redis FAQCaching Best Practice
    2. 第二个选项是将解决方案(如您所详述)部署为从 Azure VM 构建的 IaaS 解决方案。可以从Azure Marketplace 中选择许多 Redis Linux VM 映像,或者可以从本地解决方案中选择create a Linux VM OS image 并将其迁移到 Azure。 Sentinel 组件在每台服务器(master、slavea 和 slaveb,...)上启用。还有网络和其他考虑因素。从头开始构建系统,请参阅:How to Setup Redis Replication (with Cluster-Mode Disabled) in CentOS 8 – Part 1How to Setup Redis For High Availability with Sentinel in CentOS 8 – Part 2

    【讨论】:

    • 我看到没有人提供任何反馈但确实想添加 Azure 透视图。如果您有任何其他问题,请告诉我。
    • 谢谢迈克。我选择了第二种选择——因为无论 Azure 的产品如何,都需要创建一个通用设置。所以最后选择了一个 VMSS Azure AKS 集群,它有 3 个 [kuber] 从节点托管 Redis pod - 3 个主节点,3 个从节点 - 所以 3 个分片(每个节点上有 2 个 Pod,1 个从节点和 1 个主节点 - 确保主节点和相应的从节点分片不在同一个节点上)。然后在每个 POD 上使用 Sentinel,根据需要维持 3 个主节点和 Redis HA 的法定人数。这现在很好用!! Kubernetes 设置部署为有状态集。
    • 感谢您提供更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2018-12-25
    • 2016-05-23
    • 2023-03-27
    • 2020-02-16
    • 1970-01-01
    • 2021-07-03
    相关资源
    最近更新 更多