操作场景
腾讯云容器服务支持通过创建 PV/PVC,并在创建工作负载添加数据卷时使用已有 PVC,实现通过 PV 和 PVC 管理文件系统。
注意:
准备工作
安装文件存储扩展组件
说明:
若您的集群已安装 CFS-CSI 的扩展组件,则请跳过此步骤。
1. 登录 容器服务控制台,在左侧导航栏中选择集群。
2. 在集群列表中,单击目标集群 ID,进入集群详情页。
3. 选择左侧菜单栏中的组件管理,在组件管理页面单击新建。
4. 在新建组件管理页面中勾选 CFS(腾讯云文件存储)。
5. 单击完成即可创建组件。
通过控制台创建 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 相关组件预留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: v1kind: PersistentVolumemetadata:name: cfsspec:accessModes:- ReadWriteManycapacity:storage: 10Gicsi:driver: com.tencent.cloud.csi.cfsvolumeAttributes:fsid: XXXXXXhost: 192.168.XX.XXpath: /vers: "3"volumeHandle: cfspersistentVolumeReclaimPolicy: RetainstorageClassName: XXXvolumeMode: Filesystem
参数 | 是否可选 | 描述 |
fsid | 是 | 文件系统 fsid(非文件系统 id),可在文件系统挂载点信息中查看。 |
host | 是 | 文件系统 ip 地址,可在文件系统挂载点信息中查看。 |
path | 是 | 文件系统子目录,挂载后 workload 将无法访问到该子目录的上层目录。 |
vers | 是 | 插件连接文件系统时所使用的协议版本,目前支持的版本有 "3" 和 "4"。 |
注意:
如果您在静态 PV 的 YAML 中指定协议版本为
vers: "3"
,则还需要指定待挂载文件系统的 fsid 参数(获取方式请参考 获取文件系统 fsid),否则会存在挂载失败的情况;vers: "4"
则无需指定 fsid。volumeHandle :一个字符串值,唯一标识来自 CSI 卷插件的 CreateVolume 调用返回的卷名。