PV 和 PVC 管理文件存储

最近更新时间:2024-08-29 10:43:51

我的收藏

操作场景

腾讯云容器服务支持通过创建 PV/PVC,并在创建工作负载添加数据卷时使用已有 PVC,实现通过 PV 和 PVC 管理文件系统。
注意:
不同地域所支持的文件存储能力有一定差异,请按需选择。详情请参见 文件存储类型和性能规格

准备工作

安装文件存储扩展组件

说明:
若您的集群已安装 CFS-CSI 的扩展组件,则请跳过此步骤。
1. 登录 容器服务控制台,在左侧导航栏中选择集群
2. 在集群列表中,单击目标集群 ID,进入集群详情页。
3. 选择左侧菜单栏中的组件管理,在组件管理页面单击新建
4. 新建组件管理页面中勾选 CFS(腾讯云文件存储)。
5. 单击完成即可创建组件。

通过控制台创建 StorageClass

由于静态创建文件存储类型的 PV 时,需要绑定同类型可用 StorageClass,请参考 通过控制台创建 StorageClass 完成创建。

创建文件存储

1. 登录 文件存储控制台,在左侧导航栏单击文件系统,进入文件系统列表页面。
2. 单击创建。可根据实际需要进行灵活选择,文件类型可参见 存储类型及性能规格
3. 在详细设置中,参考以下信息填写:
字段
含义
文件系统名称
制定文件系统的自定义名称。本文以 cfs-test 为例。
地域
选择所需要创建 CFS 文件系统的地域,需确保与集群在同一地域。
可用区
选择所需要创建 CFS 文件系统的可用区。
文件协议
选择文件系统的协议类型,NFS 或 SMB 。其中,NFS 协议更适合于 Linux/Unix 客户端,CIFS/SMB 协议更适合于 Windows 客户端。Turbo 系列仅支持私有客户端使用,无法选择文件系统协议。
数据源
支持使用快照创建文件系统。
选择网络
指定文件系统所在的 VPC 网络,该网络内的实例可挂载访问文件系统。
权限组
每个文件系统必须绑定一个权限组,权限组规定了一组可来访白名单及读、写操作权限。
存储量
仅 Turbo 系列需填写存储量,因 Turbo 系列为独占集群,所以有最小的集群规模和扩容步长的限制。其中 Turbo 标准型的初始最小集群为40TiB,扩容步长为20TiB。Turbo 性能型的初始最小集群为20TiB,扩容步长为10TiB。
云联网
仅 Turbo 系列需填写云联网,需选择一个现有云联网或新创建一个。详细用途可参见 云联网介绍
网段
仅 Turbo 系列需填写网段,此项的目的是为 Turbo 相关组件预留IP地址段。需保证所选网段和希望与 Turbo 做信息通讯的云上其他实例的地址段不冲突,同时为保证 IP 地址的数量,掩码范围需在16-24位之间。示例:10.0.0.0/24
定期快照
为所购文件系统设置定期快照。
标签
若您已拥有标签,可以在此处为新建文件系统添加标签。
若还未拥有标签,请先到 标签控制台 创建所需要的标签,然后再为文件系统绑定标签。或者您也可以在文件系统创建完成后,再为文件系统添加标签。
4. 单击立即创建,等待创建成功即可。

获取文件系统子目录

1. 当文件系统创建完毕后,回到文件系统列表。
2. 单击已创建的文件系统名称,进入文件系统基本信息界面。
3. 单击挂载点信息,即可查看和获取 Linux 下挂载的该文件系统子目录路径 /subfolder。如下图所示:


localfolder:指用户本地自己创建的目录。
subfolder:指用户在文件存储的文件系统里创建的子目录,则该文件系统子目录路径即为 /subfolder

获取文件系统 fsid

说明:
为了获取更好的稳定性,在使用 NFSV3 协议挂载时,需要指定待挂载文件系统对应的 FSID。
1. 文件系统控制台,单击需获取 FSID 的文件系统 ID,进入该文件系统详情页。
2. 单击挂载点信息,从 “Linux 下挂载” 获取该文件系统的 FSID。如下图所示,a43qadkl为该文件系统的 FSID。



操作步骤

静态创建 PV

说明:
静态创建 PV 适用于已有存量的文件存储,并在集群内使用的场景。
1. 登录容器服务控制台,选择左侧导航栏中的 集群
2. 在集群列表中,单击集群 ID,进入集群详情页。
3. 选择左侧菜单栏中的存储 > PersistentVolume,在 PersistentVolume 页面单击新建
4. 新建 PersistentVolume 页面中,配置 PV 关键参数。
来源设置:选择静态创建
名称:自定义,本文以 cfs-pv 为例。
Provisioner:选择文件存储 CFS
读写权限:文件存储仅支持多机读写。
StorageClass:按需选择合适的 StorageClass。本文以选择在 通过控制台创建 StorageClass 步骤中创建的 cfs-storageclass 为例。
说明:
PVC 和 PV 会绑定在同一个 StorageClass 下。
不指定 StorageClass 意味着该 PV 对应的 StorageClass 取值为空,对应 YAML 文件中的 storageClassName 字段取值为空字符串。
选择 CFS:需确保文件存储与当前集群处于同一私有网络下,本文以选择在 创建文件存储 步骤中创建的 cfs-test 为例。
CFS 子目录:填写已在步骤 获取文件系统子目录 中获取的文件系统子路径,本文以 /subfolder 为例。
5. 单击创建 PersistentVolume,即可完成创建。

创建 PVC

1. 在集群列表中,单击集群 ID,进入集群详情页。
2. 选择左侧菜单栏中的存储 > PersistentVolumeClaim,在 PersistentVolumeClaim 页面单击新建
3. 新建 PersistentVolumeClaim 页面中,配置 PVC 关键参数。
名称:自定义,本文以 cfs-pvc 为例。
命名空间:选择 “default”。
Provisioner:选择文件存储 CFS
读写权限:文件存储仅支持多机读写。
StorageClass:按需选择合适的 StorageClass。本文以选择在 通过控制台创建 StorageClass 步骤中创建的 cfs-storageclass 为例。
说明:
PVC 和 PV 会绑定在同一个 StorageClass 下。
不指定意味着该 PVC 对应的 StorageClass 取值为空,对应 YAML 文件中的 storageClassName 字段取值为空字符串。
PersistVolume:按需指定 PersistentVolume,本文选择以在 静态创建 PV 步骤中创建的 cfs-pv 为例。
说明:
只有与指定的 StorageClass 相同并且状态为 Available 和 Released 的 PV 为可选状态,如果当前集群内没有满足条件的 PV 可选,请选择“不指定”PersistVolume。
如果选择的 PV 状态为 Released,还需手动删除该 PV 对应 YAML 配置文件中的 claimRef 字段,该 PV 才能顺利与 PVC 绑定。详情请参见 查看 PV 和 PVC 的绑定规则
4. 选择创建 PersistentVolumeClaim,即可完成创建。

创建 Workload 使用 PVC 数据卷

说明:
该步骤以创建工作负载 Deployment 为例。
1. 在集群列表中,单击集群 ID,进入集群详情页。
2. 选择左侧菜单栏中的工作负载 > Deployment,在 Deployment 页面单击新建
3. 在新建 Deployment 页面中,配置工作负载参数,参数详情请参见 创建 Deployment
4. 参考以下信息进行数据卷挂载。如下图所示:


数据卷(选填)
数据卷类型:选择“使用已有 PVC”。
数据卷名称:自定义,本文以 cfs-vol 为例。
选择 PVC:选择在步骤 创建 PVC 中已创建的 “cfs-pvc”。
实例内容器:单击添加挂载点,进行挂载点设置。
数据卷:选择该步骤中已添加的数据卷 “cfs-vol”。
目标路径:填写目标路径,本文以 /cache 为例。
挂载子路径:仅挂载选中数据卷中的子路径或单一文件。例如,/data/test.txt
5. 单击创建 Deployment,完成创建。
注意:
如使用 CFS 的 PVC 挂载模式,数据卷支持挂载到多台 Node 主机上。

Kubectl 操作指引

创建 PV

apiVersion: v1
kind: PersistentVolume
metadata:
name: cfs
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
csi:
driver: com.tencent.cloud.csi.cfs
volumeAttributes:
fsid: XXXXXX
host: 192.168.XX.XX
path: /
vers: "3"
volumeHandle: cfs
persistentVolumeReclaimPolicy: Retain
storageClassName: XXX
volumeMode: Filesystem
参数
是否可选
描述
fsid
文件系统 fsid(非文件系统 id),可在文件系统挂载点信息中查看。
host
文件系统 ip 地址,可在文件系统挂载点信息中查看。
path
文件系统子目录,挂载后 workload 将无法访问到该子目录的上层目录。
vers
插件连接文件系统时所使用的协议版本,目前支持的版本有 "3" 和 "4"。
注意:
如果您在静态 PV 的 YAML 中指定协议版本为 vers: "3",则还需要指定待挂载文件系统的 fsid 参数(获取方式请参考 获取文件系统 fsid),否则会存在挂载失败的情况;vers: "4"则无需指定 fsid。
volumeHandle :一个字符串值,唯一标识来自 CSI 卷插件的 CreateVolume 调用返回的卷名。