文档首页/ 云容器引擎 CCE/ 用户指南/ 存储/ 自定义存储类(StorageClass)
更新时间:2025-08-27 GMT+08:00

自定义存储类(StorageClass)

StorageClass是Kubernetes中用于定义存储类别的资源对象,提供动态分配存储卷的能力。通过设置不同的参数,StorageClass能够根据业务需求自动供应和调整存储资源。在PVC中指定StorageClassName字段后,若在集群中未找到匹配的PV,Kubernetes将根据所引用的StorageClass调用对应的Provisioner动态创建符合要求的PV及底层存储资源,从而简化了手动创建和维护PV的流程。StorageClass中的参数作为默认配置项使用,当PVC中存在与之冲突的配置时,以PVC中的设置为准

如果CCE中提供的表3 默认StorageClass无法满足业务需求,您可以自定义创建新的StorageClass,设置回收策略、绑定模式等参数,以方便后续使用。

前提条件

已安装CCE容器存储(Everest)插件,且插件处于运行中状态,具体操作步骤请参见CCE容器存储(Everest)

创建StorageClass

CCE支持两种方式创建StorageClass,即控制台和kubectl命令行方式。kubectl命令行方式更加灵活,支持配置更多参数,请结合需求进行选择。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏选择“存储”,在右侧选择“存储类”页签。单击右上角“创建存储类”,在弹出的窗口中填写存储类参数。

    图1 创建存储类

    参数

    描述

    存储类类型

    选择底层存储类型。

    名称

    输入存储类的名称,同一集群的存储类名称需唯一。

    回收策略

    用于指定删除PVC时底层存储的回收策略,详情请参见PV回收策略

    • Delete:存储卷声明PVC删除时,会将关联的底层存储资源删除,并同步移除PV资源,请谨慎使用。
    • Retain:存储卷声明PVC删除时,PV和关联的底层存储资源均会保留,需要手动删除。

    绑定模式

    动态创建PV的时间,分为立即创建和延迟创建。

    • Immediate:PVC创建后,会立即创建底层存储资源及存储卷PV,并与PVC绑定。本地持久卷类型不支持设置为Immediate。
    • WaitForFirstConsumer:PVC创建后,不会立即与存储卷PV绑定,而是等需要挂载该PVC的Pod被调度后,再创建底层存储资源及存储卷PV,并与PVC绑定。对象存储、文件存储、极速文件存储类型不支持设置为WaitForFirstConsumer。

  3. 单击“创建”。您可以在“存储类”页签下查看已经创建的存储类及相关信息。

本节提供了多种类型的StorageClass模板,您可根据业务需求选择合适的模板,快速创建符合场景要求的StorageClass资源。

自定义存储类应用场景

以下列举了自定义StorageClass的常见应用场景,供您参考:

  • 满足个性化需求,简化批量操作:通过自定义回收策略(reclaimPolicy)、卷绑定模式(volumeBindingMode)等参数,您可以灵活应对不同业务场景,避免在批量创建PVC时重复配置相关参数,从而简化操作流程、提升管理效率。
  • 支持平滑迁移,降低修改成本:当用户从自建Kubernetes或其他云厂商的Kubernetes服务迁移至CCE时,可在CCE中创建一个名称与原环境一致的StorageClass。这样,应用YAML文件或Helm Chart中的storageClassName无需修改,有效避免手动变更大量配置带来的操作负担与出错风险。例如,若迁移前使用的存储类名称为disk-standard,则可复制CCE中的csi-disk存储类 YAML,将其名称改为disk-standard后重新创建,实现无缝衔接。
  • 设置默认存储类:在创建StorageClass时,可以通过metadata.annotations.storageclass.kubernetes.io/is-default-class字段将其设置为默认存储类。设置后,用户在创建PVC时无需显式指定storageClassName,系统将自动选用该默认存储类,简化资源声明过程。
  • 绑定企业项目,实现资源统一管理:在创建StorageClass时,可以通过parameters.everest.io/enterprise-project-id字段指定企业项目,实现底层存储资源与企业项目的绑定,便于后续的资源分类管理和成本核算。

相关文档

在使用新的StorageClass时,用户只需在PVC的“storageClassName”字段中指定对应的StorageClass。StorageClass中定义的参数将作为默认配置,若PVC中指定了与之冲突的参数,则以PVC中的设置为准。

您可以参考以下文档使用StorageClass,以简化手动创建和维护PV的流程: