在 Redis Enterprise 集群中使用持久卷

本节详细介绍如何为 Redis Enterprise 集群部署确定持久卷的大小并进行指定。

存储类型

Redis Enterprise for Kubernetes 只能使用块存储支持的存储类。块存储安装在 Kubernetes 节点级别,并使用 EXT4 或 XFS 文件系统。它可以来自企业级 SAN 或云环境,例如 EBS、Azure 托管磁盘或 GCP 持久磁盘。

警告:
不支持 NFS、类似 NFS 和多读写/共享存储选项。这些类型的存储通常很慢,并且可能导致与数据库存储要求不兼容的锁定行为。

RECpersistentSpec字段

要使用 Redis Enterprise 操作员部署 Redis Enterprise 集群,规范应在redis-enterprise-cluster.yaml文件中包含一个persistentSpec部分 :

spec:
  nodes: 3
  persistentSpec:
   enabled: true
   storageClassName: "standard"
   volumeSize: "23Gi” #optional

持久性存储是生产部署的必要条件。

笔记:
对于Kubenetes 上的 Redis Enterprise Cluster 的生产部署,必须在启用持久性的情况下部署 Redis Enterprise Cluster (REC)。Kubernetes文档中的 REC 部署文件默认包含此声明。

卷大小

volumeSize是可选定义。默认情况下,如果省略定义,操作员会分配为节点定义的内存 (RAM) 量的五倍 (5x)(见下面的示例),这是硬件要求文章中所述的建议持久存储大小。

要明确指定持久存储大小,请使用 上例中所述的volumeSize属性。

持久卷声明在创建后可以扩展,但不能缩小。有关详细信息,请参阅扩展持久卷声明 (PVC)

笔记:
我们建议您从 REC 声明中省略 volumeSize 定义,以便 Kubenetes 上的 Redis Enterprise Cluster 部署使用默认卷大小。

存储类别名称

storageClassName确定由 Kubernetes 集群管理员定义的用于持久存储的存储类资源。

不同的Kubernetes发行版、不同的部署使用不同的Storage Class资源。

为了确定您的 K8s 部署可用的存储类资源,请使用以下命令:

kubectl get StorageClass

通常,AWS 提供“gp2”作为存储类名称,而 GKE 使用“标准”。Azure 提供两种存储类:“默认”使用 HDD,而“托管高级”使用 SSD。

下面是对该命令的响应的示例。

姓名: GP2型
是否为默认类: 是的
注释: storageclass.beta.kubernetes.io/is-default-class=true
供應者: kubernetes.io/aws-ebs
参数: 加密=false,kmsKeyId=,类型=gp2
允许音量扩展: <取消设置>
安装选项: <无>
回收政策: 删除
卷绑定模式: 即时
事件: <无>
笔记:
必须为此部署类型指定 storageClassName。
警告:
部署后无法更改存储类别。部署后尝试更改此值可能会导致意外且可能造成损害的行为。

redisEnterpriseNodeResources 定义示例:

redisEnterpriseNodeResources:
  limits:
    cpu: “4000m”
    memory: 4Gi
  requests:
    cpu: “4000m”
    memory: 4Gi
给此页面评分
返回顶部 ↑