- 文档首页
容器服务
容器服务 VKE
用户指南
存储
文件存储(vePFS)
vePFS Client 访问方式
使用 vePFS 静态存储卷
vePFS Client 访问方式
使用 vePFS 静态存储卷
使用 vePFS 静态存储卷
容器服务支持通过 CSI 使用 vePFS 文件存储,本文为您介绍如何创建 vePFS 文件存储类型的存储卷和存储卷声明,以及工作负载如何使用 vePFS 文件存储静态存储卷。
说明
【邀测·申请试用】使用 vePFS 文件存储静态存储卷功能 和 智算版规格 目前均处于邀测阶段,如需使用,请提交申请。 前提条件
- 已安装 csi-vepfs 组件,详情请参见 安装组件。
使用限制
使用 vePFS 文件存储时,需要注意以下部署兼容性、组件卸载、服务挂载、运行性能相关限制或影响。
部署兼容性相关限制
- 一个 vePFS 挂载服务不能同时用于 vePFS CSI 方案和主机预挂载 vePFS 方案。对一个 vePFS 文件系统实例,如果用户已经使用 VKE 节点预挂载 vePFS 并通过 hostpath 供给 Pod 的方式,需要额外创建一个 vePFS 挂载服务,将新的 vePFS 挂载服务配置给 vePFS CSI 使用。
- 通过 CSI 使用 vePFS 文件存储的方案与通过 vePFS-Manager 组件使用 vePFS 的方案不能同时使用。因此,建议创建新集群使用 CSI 方案,若存量资源需要迁移最新 CSI 方案,请 提交工单 获取技术支持。
- vePFS CSI controller 会被优先调度到拥有标签vepfs.csi.volcengine.com/controller=preferred的节点,如果计划对 VKE 集群节点池进行频繁扩缩容,建议 CSI controller 优先调度到常驻节点(不受扩缩容影响),以保证 vePFS CSI 可以快速及时地处理 VKE 集群和 vePFS 集群的成员一致性。否则,运行 vePFS CSI controller 的节点被缩容删除时,vePFS CSI controller 可能无法维持 VKE 和 vePFS 集群间的成员一致性,导致 vePFS CSI 后续的操作缓慢。
- 已经以 VPC 网络加入到 vePFS 集群中的节点将无法使用 RDMA 网络。如果要切换成 RDMA 网络,请将 VKE 节点从 vePFS 文件系统集群中删除。
组件卸载相关限制
- 若 csi-vepfs 组件被卸载,正在运行的 Pod 仍可继续访问 vePFS 存储至运行结束;但若 csi-vepfs 已经被卸载,删除 Pod 将会阻塞住,重新安装 csi-vepfs 后可继续删除 Pod。因此,不建议在 Pod 运行的时卸载 csi-vepfs 组件。
- csi-vepfs 使文件系统客户端运行在专用容器中,vePFS 客户端将占用容器 Kubernetes 节点的计算资源(默认占用 4 CPU 和 4 GiB 内存),若节点资源紧张,csi-vepfs 客户端容器将无法启动成功,Pod 也将阻塞在创建阶段无法启动。
- 提前删除 vePFS 挂载服务,将导致 vePFS CSI 组件无法卸载。
- vePFS CSI 组件删除后,部分资源无法确认能否被删除,可能构成资源残留。
- vePFS mount service secret:创建 vePFS PV 时,VKE 将一起创建一个 Secret,其中保存了 vePFS 挂载服务三个管理节点的地址和登录秘钥,可通过以下命令查询 VKE 集群中存在的上述 Secret。
- VKE 节点上的安全组:为了保证 VKE 节点能够与 vePFS 文件系统集群互通,vePFS CSI 会同时将管理服务 ECS 的安全组添加到 VKE 节点的安全组列表中。但 CSI 卸载的过程中无法确定该安全组是否仍被用户使用,所以无法将它从 VKE 节点中解绑,用户可以通过 ECS 控制台,在安全组选项中查看或删除与 vePFS 挂载服务 所属 ECS 节点中相同的安全组。
服务挂载相关限制
- 单个 vePFS 实例支持绑定多个挂载服务;单个挂载服务也支持绑定到多个 vePFS 实例。
- 单个 ECS 只能加入一个 vePFS 挂载服务(相当于客户端集群),一个挂载服务可以绑定多个文件系统存储实例。
- 一个节点仅支持绑定一个挂载服务,因此,推荐一个 VKE 集群绑定一个 vePFS 挂载服务。
- vePFS 暂不支持使用 Ubuntu 和 veLinux CentOS 兼容版等镜像。详细客户端限制参见:客户端限制。
- 当挂载目录被运行中的 Pod 使用时,请勿通过任何手段手动删除对应目录或其父目录。否则可能导致其它节点上的挂载变为deleted状态,进一步引发目录不可访问、Pod 启动失败或卷挂载失败。请注意:
- 这里的“使用中”不仅指当前节点,也包括同一个文件系统在其它节点上的运行中 Pod。
- 如果业务需要清理目录,必须先确认所有相关 Pod 已停止使用该目录,再执行删除。
- 不支持嵌套 subpath 使用。即不能把某个目录作为一个卷的 subpath,同时再把它的子目录作为另一个卷的 subpath 供不同 Pod 使用。当父目录对应的挂载被删除或重建后,子目录挂载点可能失效,且当前没有技术方案进行自动恢复。
- 不支持同一个节点同时加入多个 vePFS 挂载服务。节点一旦通过某个挂载服务完成 vePFS 客户端初始化和挂载,在节点侧会保留该挂载服务相关的运行时状态。若您在控制台删除该 vePFS 实例或挂载服务,平台不会自动清理集群内和节点本地的 CSI 运行时状态。因此,存量已使用过原挂载服务的节点,在完成清理前,不能直接复用于其它 vePFS 挂载服务。
- 若集群中多个节点对应的 ECS 实例拥有相同的主机名(hostname),则对应节点无法加入 vePFS 挂载服务。
运行性能相关限制
- 第一次在节点上启动使用 vePFS 的容器相比后续启动速度慢 15 秒左右。因为 vePFS CSI 需要在节点上为 vePFS 编译内核驱动,编译过程引入了更多的耗时,但是这个耗时仅仅发生在第一次创建使用 vePFS 卷的容器的过程中。
通过控制台配置
步骤一:创建存储卷(PV)
- 在左侧导航栏中,选择 集群,单击目标集群名称,进入集群管理页面。
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷,单击 创建存储卷,配置存储卷。
-
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷声明,单击 创建存储卷声明,配置存储卷声明。
-
步骤三:创建应用并挂载存储卷
vePFS 文件存储类型的静态存储卷创建完成后,可通过添加卷的方式挂载到工作负载使用,包括:无状态负载、有状态负载、任务、定时任务、守护进程。
可通过创建工作负载或更新工作负载操作的容器配置步骤,为工作负载添加卷并挂载卷。详细操作参见:工作负载。
通过 kubectl 命令行配置
已经 连接集群 的情况下,可通过 kubectl 命令行使用 vePFS 文件存储静态存储卷。 步骤一:配置连接鉴权
执行以下命令,将 vePFS 管理节点的 SSH 连接鉴权信息写在 Secret 中。
说明
以下示例中的 address、password、hostname 仅做演示,请根据实际场景替换为真实配置。
步骤二:创建存储卷(PV)
- 创建 PV 的 YAML 文件,示例文件vke-pfs-static-pv.yaml。支持挂载整个文件系统或文件系统子目录,可根据实际情况按需选择。
挂载 vePFS 整个文件系统的 Yaml 示例如下:
挂载 vePFS 文件系统子目录的 Yaml 示例如下:
注意
- 目前,仅通过 Yaml 静态创建 vePFS 类型 PV 时,支持挂载 vePFS 文件系统子目录(subpath)。
- 创建 PV 时必须使用已经创建的 vePFS 文件系统子目录,否则,创建 Pod 过程将无法挂载 volume。
步骤三:创建存储卷声明(PVC)
- 创建 PVC 的 YAML 文件。示例文件vke-pfs-static-pvc.yaml代码如下:
- 执行以下命令,查看 PVC 与 PV 的静态绑定结果。
- 预期输出结果如下,表示 PVC 与 PV 静态绑定成功。
步骤四:创建应用并挂载存储卷
- 创建 Deployment 的 YAML 文件。示例文件deployment-nginx-static.yaml代码如下:
注意
创建工作负载过程中,会优先在节点上启动一个用于挂载 vePFS 客户端的专用容器,vePFS 客户端将占用容器 Kubernetes 节点的计算资源(默认占用 4 CPU 和 4 GiB 内存),若节点资源紧张,csi-vepfs 客户端容器将无法启动成功,Pod 也将阻塞在创建阶段无法启动。
按照上文示例创建工作负载并挂载存储卷后,您可以通过以下方式验证存储卷的挂载和持久化存储。
- 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。
- 查看 Pod 中的挂载路径,即查看存储卷中的数据。
- 预期返回如下,可以看到存储卷中写入的文件依然存在,未随着 Pod 的删除而被删除,实现了数据的持久化存储。
最近更新时间:2026.08.27 17:25:05