概述
Redis(Remote DIctionary Server)是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。部署 Redis Operator 后,可在数据服务视图中使用 Redis 功能。
Redis Operator 简介
Redis Operator 是一款基于 Kubernetes,使用 Go 语言编写的 Operator,能够部署监控单点或者集群的 Redis 实例。 它可以很好地运行在云服务裸金属服务器上,并以最佳实践的方式创建 Redis 集群。同时,它还提供基于 redis -exporter 的内置监控功能。
基于 Redis Operator,可创建官方 集群版 Redis(Redis Cluster)和 哨兵版 Redis(Redis Sentinel)。
-
集群版 Redis(Redis Cluster)
Redis 集群是一个提供在多个 Redis 节点间共享数据的程序集。
Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令.。
Redis 集群的优势:
-
自动分割数据到不同的节点上;
-
整个集群的部分节点失败或者不可达的情况下能够继续处理命令。
-
-
哨兵版 Redis(Redis Sentinel)
Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:
-
监控(Monitoring): Sentinel 会不断地检查主服务器和从服务器是否运行正常;
-
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知;
-
自动故障迁移(Automatic failover):当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作,它会将失效主服务器的其中一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器复制新的主服务器;当客户端试图连接失效的主服务器时,集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
Redis Sentinel 是一个分布式系统, 可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。
-
Redis Operator 核心功能
Redis Operator 能够提供一个 Kubernetes 上简易的、生产级的 Redis 安装程序。
下面列举了一些该 Operator 目前支持的功能:
-
支持集群、哨兵两种部署架构
-
内置监控
-
PVC 动态存储
-
支持备份恢复
-
资源配额
-
密码和无密码设置
-
节点选择和亲和性
-
优先类和管理部署优先级
-
SecurityContext 支持