azure - 基于 kubernetes 的高可用、冗余 Redis 集群

标签 azure kubernetes redis high-availability redis-sentinel

目标是使用 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 组件。

  1. Azure Redis 缓存 (PaaS),您可以在其中选择和部署所需的服务层(HA 所需的高级层)并连接客户端应用程序。请参阅:Azure Cache for Redis FAQCaching Best Practice .
  2. 第二个选项是将解决方案(如您所详述)部署为从 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 1How to Setup Redis For High Availability with Sentinel in CentOS 8 – Part 2

关于azure - 基于 kubernetes 的高可用、冗余 Redis 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62669021/

相关文章:

python - Celery 任务在 Django 应用程序中执行多次

perl - redis HLL 误报太多

用于 Redis 队列工作人员的 Kubernetes 活跃度探针

azure - 查询 Azure Log Analytics 中的多个表

azure - 向 Azure 进行身份验证时的自定义应用程序权限和授权

elasticsearch - 使用本地卷获取错误 'unknown field hostPath' Kubernetes Elasticsearch

Kubernetes kube-proxy 正在运行但找不到指定的 kubeconfig 文件

apache-spark - 在Kubernetes上运行Spark示例失败

node.js - 未收到从 azure-event-hubs onMessage 函数发送的 azure-iothub 消息

azure - 在本地运行 ACI 和 SQL Server