在 Redis Enterprise 集群中使用持久卷

本节详细介绍了如何为 Redis Enterprise 集群部署调整和指定持久性卷。

适用于 Kubernetes 的 Redis Enterprise

存储类型

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

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

娱乐persistentSpec

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

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

持久性存储是生产部署的一项要求。

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

卷大小

volumeSize 是一个可选定义。默认情况下,如果定义为 省略,运算符分配内存量 (RAM) 的五倍 (5x) 为节点定义(请参阅下面的示例),这是推荐的 持久存储大小,如硬件中所述 Requirements 文章。

要显式指定持久性存储大小,请使用 volumeSize 属性,如上例所述。

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

注意:
我们建议您在 REC 声明中省略 volumeSize 定义 以便 Kubernetes 上的 Redis Enterprise Cluster 部署使用默认卷大小。

存储类名称

storageClassName 确定 Storage Class 资源,即 由 Kubernetes 集群管理员定义,用于 持久存储。

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

为了确定可用于 K8s 的 Storage Class 资源 deployment,请使用以下命令:

kubectl get StorageClass

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

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

名字: gp2
IsDefaultClass 的 是的
附注: storageclass.beta.kubernetes.io/is-default-class=true
供应者: kubernetes.io/aws-ebs
参数: 加密=false,kmsKeyId=,type=gp2
AllowVolumeExpansion 的 AllowVolumeExpansion 中: <未设置>
MountOptions 的 MountOptions 中: <没有>
ReclaimPolicy 的 ClaimPolicy 中: 删除
VolumeBindingMode 的 VolumeBindingMode 中: 立即的
事件: <没有>
注意:
必须为此部署类型指定 storageClassName。
警告:
部署后无法更改存储类型。在部署后尝试更改此值可能会导致意外且可能具有破坏性的行为。

redisEnterpriseNodeResources 定义示例:

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