基于Kubernetes操作符架构的Redis企业版
本节提供了Redis Enterprise forKubernetes设计的描述。
Redis Enterprise 是在 Kubernetes 中部署和维护 Redis Enterprise 集群的最快、最高效的方式。
什么是运算符?
操作符是一个Kubernetes自定义控制器,它扩展了原生的K8s API。
操作符(Operators)是为了处理那些默认的K8s控制器无法处理的复杂、有状态应用程序而开发的。虽然标准的Kubernetes控制器——例如,StatefulSets——非常适合部署、维护和扩展简单的无状态应用程序,但它们并不具备处理有状态资源访问、升级、调整大小和备份更复杂的集群应用程序(如数据库)的能力。
操作符的作用是什么?
在抽象层面上,操作符将人类的操作知识编码成软件,这种软件能够以可扩展、模块化的方式可靠地管理应用程序,并且不会阻碍构成K8s架构的基本原语。
Redis 创建了一个操作符,用于部署和管理 Redis 企业集群的生命周期。
Redis Enterprise 操作员充当自定义控制器,用于自定义资源 RedisEnterpriseCluster 或 'rec',该资源通过 K8s CRD(自定义资源定义)定义,并使用 yaml 文件部署。
操作符函数包括:
- 验证已部署的集群规范(例如,要求部署奇数个节点)
- 实施一个对账循环以监控所有适用的资源
- 记录事件
- 启用一个简单的机制来编辑集群规范
Redis Enterprise 操作员充当 K8s 基础设施和 Redis Enterprise 集群之间的逻辑“粘合剂”。
操作员创建了以下资源:
- 服务账户
- 服务账户角色
- 服务账户角色绑定
- Secret – 保存集群的用户名、密码和许可证
- Statefulset – 包含Redis Enterprise节点
- 服务管理器部署 – 暴露数据库和标记节点
- Redis UI 服务
- 运行REST API + Sentinel的服务
- Pod 中断预算
- 可选:为服务代理部署,包括服务和PVC
下图展示了Redis Enterprise操作员的高级架构:
