介绍
Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis通常StatefulSet
在Kubernetes上部署,并且需要Redis Storage Manager实例的每个实例的持久存储。当扩展存储管理器时,OpenEBS可以即时提供持久卷。
将OpenEBS用于Redis的优点:
- 无需管理本地磁盘,它们由OpenEBS管理
- OpenEBS和Redis可以提供大型PV
- 从小型存储开始,然后根据需要动态添加磁盘。有时,由于节点的容量,Redis实例会按比例扩大。使用OpenEBS持久卷,可以精简配置容量,并且可以在不中断服务的情况下将磁盘动态添加到OpenEBS。
- Redis有时需要高可用性的存储,在这种情况下,OpenEBS卷可以配置3个副本。
- 如果需要,请定期备份Redis数据并将其备份到S3或任何对象存储,以便可以将相同数据恢复到相同或任何其他Kubernetes集群
注意:Redis既可以部署为,也可以部署Deployment
为StatefulSet
。将Redis部署StatefulSet
为时,您无需在OpenEBS级别再次复制数据。如果将Redis部署为Deployment
,请考虑3个OpenEBS副本,请相应地选择StorageClass。
部署模型
配置工作流程
- 安装OpenEBS
- 如果您的K8s集群中未安装OpenEBS,则可以从此处完成。如果已经安装了OpenEBS,请转到下一步。
- 配置cStor池
- 安装OpenEBS之后,必须配置cStor池。如果您的OpenEBS集群中未配置cStor Pool,则可以从此处完成。下面的“配置”详细信息中提供了用于配置cStor Pool的名为openebs-config.yaml的示例YAML 。在创建cStor Pool的过程中,请确保将maxPools参数设置为> = 3。如果已经配置了cStor池,请转到下一步。
- 创建存储类
- 您必须配置StorageClass才能在给定的cStor池上配置cStor卷。StorageClass是定义大多数OpenEBS存储策略的接口。在此解决方案中,我们使用StorageClass来使用cStor池,该池是使用节点上附加的外部磁盘创建的。由于Redis是一个StatefulSet,因此它需要的存储复制因子为1。因此cStor卷
replicaCount
>> = 1。下面的配置详细信息中提供了名为openebs-sc-disk.yaml的示例YAML,用于使用cStor卷副本计数为1的cStor池。 - 启动并测试Redis
- 使用stable稳定Redis镜像,使用以下命令在您的群集中部署Redis。在以下命令中,它将创建8G大小的PVC用于数据量。
helm install --set master.persistence.storageClass=openebs-cstor-disk stable/redis
原文链接:Redis使用OpenEBS做持久化存储,转载请注明来源!