首页 » 数据库 » NoSQL » Redis使用OpenEBS做持久化存储

Redis使用OpenEBS做持久化存储

 

介绍

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既可以部署为,也可以部署DeploymentStatefulSet。将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做持久化存储,转载请注明来源!

2