操作场景
集群管理员可使用 StorageClass 为容器服务集群定义不同的存储类型。容器服务已默认提供块存储类型的 StorageClass,您可通过 StorageClass 配合 PersistentVolumeClaim 动态创建需要的存储资源。
本文介绍通过控制台、Kubectl 两种方式创建文件存储 CFS 类型的 StorageClass,自定义文件存储使用所需的模板。
准备工作
1. 安装文件存储扩展组件
2. 创建子网
3. 创建权限组并添加权限组规则
4. 获取文件系统 FSID
1. 在 文件系统控制台,单击需获取 FSID 的文件系统 ID,进入该文件系统详情页。
2. 选择挂载点信息页签,从 “Linux 下挂载” 获取该文件系统的 FSID。如下图所示, 
a43qadkl
为该文件系统的 FSID。

说明:
为了获取更好的稳定性,在通过 YAML 创建 PV 并使用 NFSV3 协议挂载时,需要指定待挂载文件系统对应的 FSID。
控制台操作指引
创建 StorageClass
1. 登录 容器服务控制台,在左侧导航栏中选择集群。
2. 在集群列表中,单击目标集群 ID,进入集群详情页。
3. 选择左侧菜单栏中的存储 > StorageClass,在 StorageClass 页面单击新建。
4. 在新建存储页面,配置 StorageClass 参数。如下图所示:


配置项 | 描述 |
名称 | 填写 StorageClass 的名称。本文以 cfs-storageclass 为例。 |
地域 | 默认为集群所在地域。 |
Provisioner | Provisioner 支持选择云硬盘 CBS(CSI)、文件存储 CFS 或文件存储 CFS turbo。此处选择文件存储 CFS。 |
实例创建模式 | 提供创建新实例和共享实例两种模式。 创建新实例:挂载时每个 PVC 默认创建一个 CFS 实例。 共享实例:挂载时每个 PVC 将共享同一 CFS 实例的不同子目录,共享的 CFS 实例及子目录由系统自动创建。 说明: CFS-CSI 组件自 v1.0.1 版本开始支持共享存储实例功能,请及时升级组件版本,使用说明如下: 共享实例类型的 StorageClass 回收策略限制为“保留”。 通过该 StorageClass 初次动态创建 PVC 时会默认创建一个 CFS 实例,并在该实例下创建子目录实现 PVC 之间的挂载隔离。 每个共享实例类型 StorageClass 创建的 CFS 实例不同,建议您妥善控制数量。 |
可用区 | |
CFS 归属子网 | 设置当前可用区下文件系统的所属子网范围。 |
存储类型 | 文件存储提供标准存储和性能存储两种类型的文件系统,每个地域下不同可用区所适用的存储类型不完全一致,请结合控制台实际情况进行选择。 标准存储:低成本、大容量,适用于成本敏感及大容量的业务。例如数据备份、文件共享、日志存储等场景。 性能存储:高吞吐、高 IOPS,适用于 IO 密集型工作负载。例如高性能计算、媒资渲染、机器学习、DevOps、办公 OA 等场景。 |
文件服务协议 | 默认为 NFS 协议,允许透明访问服务器上的文件和文件系统。 |
协议版本 | 推荐使用 NFS v3 协议挂载获得更好的性能。如果您的应用依赖文件锁(即需要使用多台 CVM 同时编辑一个文件)请使用 NFS v4 协议挂载。 |
权限组 | |
回收策略 | 提供删除和保留两种回收策略,出于数据安全考虑,推荐使用保留回收策略。 删除:通过 PVC 动态创建的 PV,在 PVC 销毁时,与其绑定的 PV 和存储实例也会自动销毁。 保留:通过 PVC 动态创建的 PV,在 PVC 销毁时,与其绑定的 PV 和存储实例会被保留。 |
标签 | 选择 CFS 实例需要绑定的云标签。该标签将由 StorageClass 动态创建的 CFS 实例自动继承,StorageClass 创建后其绑定的标签参数不支持修改。如现有标签不符合您的要求,请前往 标签控制台 操作。 |
5. 单击创建 StorageClass 即可。
使用指定 StorageClass 创建 PVC
1. 在集群列表中,单击目标集群 ID,进入集群详情页。
2. 选择左侧菜单栏中的存储 > PersistentVolumeClaim,在 PersistentVolumeClaim 信息页面单击新建。
3. 在新建 PersistentVolumeClaim 页面,配置 PVC 关键参数。如下图所示:


配置项 | 描述 |
名称 | 填写 PersistentVolumeClaim 的名称。本文以 cfs-pvc 为例。 |
命名空间 | 命名空间用来划分集群资源。此处选择 default。 |
Provisioner | 选择文件存储 CFS。 |
读写权限 | 文件存储仅支持多机读写。 |
StorageClass | 说明: PVC 和 PV 会绑定在同一个 StorageClass 下。 不指定 StorageClass 意味着该 PVC 对应的 StorageClass 取值为空,对应 YAML 文件中的 storageClassName 字段取值为空字符串。 |
PersistVolume | 按需指定 PersistentVolume。本文选择不指定 PersistentVolume。
说明: 系统首先会筛选当前集群内是否存在符合绑定规则的 PV,若没有则根据 PVC 和所选 StorageClass 的参数动态创建 PV 与之绑定。 系统不允许在不指定 StorageClass 的情况下同时选择不指定 PersistVolume。 关于不指定 PersistVolume 的详细介绍,请参见 查看 PV 和 PVC 的绑定规则。 |
4. 单击创建 PersistentVolumeClaim。
创建 Workload 使用 PVC 数据卷
说明:
该步骤以创建工作负载 Deployment 为例。
1. 在集群列表中,单击目标集群 ID,进入集群详情页。
2. 选择左侧菜单栏中的工作负载 > Deployment,在 Deployment 页面单击新建。
3. 在新建工作负载页面,参考 创建 Deployment 进行创建,并参考以下信息进行数据卷挂载。如下图所示:


数据卷(选填):
数据卷类型:选择“使用已有 PVC”。
数据卷名称:自定义,本文以
cfs-vol
为例。选择 PVC:选择在步骤 创建 PVC 中已创建的 “cfs-pvc”。
实例内容器:单击添加挂载点,进行挂载点设置。
数据卷:选择该步骤中已添加的数据卷“cfs-vol”。
目标路径:填写目标路径,本文以
/cache
为例。挂载子路径:仅挂载选中数据卷中的子路径或单一文件。例如,
/data
或 /test.txt
。4. 单击创建 Deployment,完成创建。
注意:
如使用 CFS 的 PVC 挂载模式,数据卷支持挂载到多台 Node 主机上。
Kubectl 操作指引
创建 StorageClass
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: cfsparameters:pgroupid: xxxxxxxxstoragetype: SD#subdir-share: "true"vpcid: vpc-xxxxxxxxsubnetid: subnet-xxxxxxxxvers: "3"resourcetags: ""zone: ap-guangzhou-3provisioner: com.tencent.cloud.csi.cfs #共享实例:provisioner: com.tencent.cloud.csi.tcfs.xxx(storageClass的name)reclaimPolicy: DeletevolumeBindingMode: Immediate
parameters 支持参数如下:
参数 | 是否可选 | 描述 |
zone | 否 | 设置文件存储所在的地域。 |
pgroupid | 否 | 设置文件存储所归属的权限组。 |
storagetype | 否 | 默认为标准存储 SD,可取值及描述如下: SD:标准型存储 HP:性能存储 |
subdir-share | 是 | 填写则代表 StorageClass 的实例创建模式为共享实例。 |
vpcid | 是 | 创建的文件存储所在的私有网络 ID。 |
subnetid | 是 | 创建的文件存储所在的子网 ID。 |
vers | 是 | 插件连接文件系统时所使用的协议版本,动态生成的 PV 会继承该参数,目前支持的版本有 "3" 和 "4"。 |
resourcetags | 是 | 文件系统云标签,生成的文件系统上会打上对应腾讯云标签,多个标签由英文逗号隔开,例如 "a:b,c:d"。 |
创建 PVC
apiVersion: v1kind: PersistentVolumeClaimmetadata:name: cfsnamespace: defaultspec:accessModes:- ReadWriteManyresources:requests:storage: 10GistorageClassName: cfsvolumeMode: FilesystemvolumeName: XXX #动态创建无需填写,静态创建需要在该字段中指定 pv 实例 id
参数 | 是否可选 | 描述 |
spec.accessModes | 否 | cfs 存储支持多读多写 |
spec.resources.requests.storage | 是 | 无实际意义,具体存储大小只与文件系统种类有关。 |
说明:
1. CFS 文件存储系统支持根据文件容量大小自动扩展文件系统存储容量,扩展过程不会中断请求和应用。默认创建的 CFS 实例容量大小为 10Gi,容量上限与产品类型相关,详情根据请参考 系统限制。
2. 通过 PVC 动态创建的 PV 将自动继承 StorageClass 中设定的参数,该参数由存储插件自动生成。