You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
NFS 访问方式
通过 NFS 使用 vePFS 存储卷
复制全文
下载 pdf
通过 NFS 使用 vePFS 存储卷
容器服务支持通过协议服务 NFS 使用 vePFS 文件存储,本文以 kubectl 命令行方式为例,为您介绍如何通过协议服务 NFS 使用 vePFS 文件存储。​
说明​
【邀测】协议服务 NFS 目前处于邀测阶段,如需使用,请联系客户经理。​
前提条件​
  • 已开通 vePFS 协议服务功能,并创建 NFS 协议类型的 vePFS 文件存储。​
  • 已在本地安装 kubectl 工具,并通过 kubectl 连接目标集群。详情请参见 连接集群。​
使用 vePFS 静态存储卷​
步骤一:创建存储卷(PV)​
  1. 创建 PV 的 YAML 文件。示例文件vke-pfs-static-pv.yaml代码如下:​
  • ​
    apiVersion: v1​
    kind: PersistentVolume​
    metadata:​
    name: pfs-static-pv # PV 名称,集群内唯一​
    spec:​
    accessModes: # 存储卷访问方式,仅支持 ReadWriteMany,表示多点读写​
    - ReadWriteMany​
    capacity:​
    storage: 20Gi # 存储卷容量,Kubernetes 必填字段,但对 vePFS没有意义,仅作为校验参数必填 ​
    csi:​
    driver: nas.csi.volcengine.com # 存储挂载依赖的驱动​
    volumeAttributes:​
    fsId: vepfs ​
    fsType: vepfs # 文件系统类型,取值:Extreme(极速型),Cache(缓存型),Capacity(容量型),Vepfs(vePFS 文件存储)​
    path: /vepfs/temp # 文件系统挂载子目录,前缀必须为 /vepfs​
    server: export-6535d79e.cnbxxxxxbbd50f.rrazxxxxxxx7g.vepfs.ivolces.com # vePFS 目标导出目录挂载点​
    volumeAs: subpath # 创建的子目录类型。取值:subpath(子路径),filesystem(文件系统)​
    volumeHandle: pfs-static-pv # PV 的唯一标识符,与 PV 名称保持一致。如需同时使用多个 PV,则各个 PV 中该值必须不一致​
    mountOptions:​
    - nolock,proto=tcp,noresvport​
    - vers=3 # vePFS 仅支持 v3​
    persistentVolumeReclaimPolicy: Retain # PV 回收策略。取值:Retain(保留策略),Delete(删除策略)​
    volumeMode: Filesystem​
    ​
  1. 执行以下命令,创建 PV。​
  • ​
    kubectl create -f vke-pfs-static-pv.yaml​
    ​
步骤二:创建存储卷声明(PVC)​
  1. 创建 PVC 的 YAML 文件。示例文件vke-pfs-static-pvc.yaml代码如下:​
  • ​
    apiVersion: v1​
    kind: PersistentVolumeClaim​
    metadata:​
    name: pfs-static-pvc​
    namespace: default​
    spec:​
    accessModes: # PVC 访问方式。仅支持 ReadWriteMany,表示多点读写​
    - ReadWriteMany​
    resources:​
    requests:​
    storage: 20Gi # 声明的存储容量,Kubernetes 必填字段,但对 vePFS 没有意义,仅作为校验参数必填​
    volumeName: pfs-static-pv # 绑定到该 PVC 的 PV 名称​
    ​
  1. 执行以下命令,创建 PVC。​
  • ​
    kubectl create -f vke-pfs-static-pvc.yaml​
    ​
  1. 执行以下命令,查看 PVC 与 PV 的静态绑定结果。​
  • ​
    kubectl get pvc​
    ​
  • 预期输出结果如下,表示 PVC 与 PV 静态绑定成功。​
  • ​
    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE​
    vke-pfs-static-pvc Bound vke-pfs-static-pv 20Gi RWX 2m36s​
    ​
步骤三:创建应用并挂载存储卷​
  1. 创建 Deployment 的 YAML 文件。示例文件deployment-nginx-static.yaml代码如下:​
  • ​
    apiVersion: apps/v1​
    kind: Deployment​
    metadata:​
    name: deployment-nginx-static​
    namespace: default​
    spec:​
    selector:​
    matchLabels:​
    app: nginx​
    template:​
    metadata:​
    labels:​
    app: nginx​
    spec:​
    containers:​
    - name: nginx​
    image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0​
    ports:​
    - containerPort: 80​
    name: nginx​
    volumeMounts:​
    - name: pfs​
    mountPath: /tmp # 存储卷在容器中的挂载位置​
    volumes:​
    - name: pfs​
    persistentVolumeClaim:​
    claimName: pfs-static-pvc # 已创建的 PVC 名称​
    ​
  1. 执行以下命令,创建 Deployment。​
  • ​
    kubectl apply -f deployment-nginx-static.yaml​
    ​
使用 vePFS 动态存储卷​
步骤一:创建存储类(StorageClass)​
  1. 创建 StorageClass 的 YAML 文件。示例文件vke-pfs-sc.yaml代码如下:​
  • ​
    apiVersion: storage.k8s.io/v1​
    kind: StorageClass​
    metadata:​
    name: pfs-nas-sc # StorageClass 名称​
    mountOptions:​
    - nolock,proto=tcp,noresvport,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2​
    - vers=3 # 挂载数据卷的协议版本号。取值:3(NFSv3)​
    parameters:​
    ChargeType: PostPaid # 计费类型,仅支持 PostPaid,表示按量计费​
    fsId: vepfs # 文件系统 ID,取值为 vepfs​
    fsType: vepfs # 文件系统类型,取值为 vepfs​
    server: cngl327ffxxxxx78.3rei7p0lzu1xxxxx2j48kqtl.vepfs.ivolces.com​
    subPath: /test # subPath 挂载后的子目录,系统将在这个子目录中创建目录作为动态卷的后端存储​
    volumeAs: subpath # 创建的子目录类型。取值:subpath(子路径),filesystem(文件系统)​
    provisioner: nas.csi.volcengine.com # 存储挂载依赖的驱动​
    reclaimPolicy: Retain # 回收策略。取值:Retain(保留策略),Delete(删除策略)​
    volumeBindingMode: Immediate # 卷绑定模式。取值:Immediate(立即绑定和分配),WaitForFirstConsumer(延迟存储卷的绑定和分配)​
    ​
  1. 执行以下命令,创建 StorageClass。​
  • ​
    kubectl create -f vke-pfs-sc.yaml​
    ​
步骤二:创建存储卷声明(PVC)​
  1. 创建 PVC 的 YAML 文件。示例文件vke-pfs-dynamic-pvc.yaml代码如下:​
  • ​
    apiVersion: v1​
    kind: PersistentVolumeClaim​
    metadata:​
    name: pfs-dynamic-pvc​
    namespace: default​
    spec:​
    accessModes: # PVC 访问方式。仅支持 ReadWriteMany,表示多点读写​
    - ReadWriteMany​
    resources:​
    requests:​
    storage: 20Gi # 声明的存储容量,Kubernetes 必填字段,但对 vePFS 没有意义,仅作为校验参数必填​
    storageClassName: pfs-nas-sc # 已创建的 StorageClass 名称​
    ​
  1. 执行以下命令,创建 PVC。​
  • ​
    kubectl create -f vke-pfs-dynamic-pvc.yaml​
    ​
  1. 执行以下命令,查看 PVC 与 StorageClass 的动态绑定结果。​
  • ​
    kubectl get pvc​
    ​
  • 预期输出结果如下,表示 vePFS 通过配置 StorageClass 完成了 PVC 与 PV 的动态绑定成功。​
  • ​
    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS ​
    pfs-dynamic-pvc Bound pvc-6e8c646b-e3e9-4d02-836e-3b66******** 20Gi RWX pfs-nas-sc ​
    ​
步骤三:创建应用并挂载存储卷​
  1. 创建 Deployment 的 YAML 文件。示例文件deployment-nginx-dynamic.yaml代码如下:​
  • ​
    apiVersion: apps/v1​
    kind: Deployment​
    metadata:​
    name: deployment-nginx-dynamic​
    namespace: default​
    spec:​
    selector:​
    matchLabels:​
    app: nginx​
    template:​
    metadata:​
    labels:​
    app: nginx​
    spec:​
    containers:​
    - name: nginx​
    image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0​
    ports:​
    - containerPort: 80​
    name: nginx​
    volumeMounts:​
    - name: pfs​
    mountPath: /tmp # 存储卷在容器中的挂载位置​
    volumes:​
    - name: pfs​
    persistentVolumeClaim:​
    claimName: pfs-dynamic-pvc # 已创建的 PVC 名称​
    ​
  1. 执行以下命令,创建 Deployment。​
  • ​
    kubectl apply -f deployment-nginx-dynamic.yaml​
    ​
结果验证​
按照上文示例创建工作负载并挂载存储卷后,您可以通过以下方式验证存储卷的挂载和持久化存储。​
  1. 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。​
  • ​
    kubectl exec vke-efs-static-deployment-xxx -- df | grep tmp​
    ​
  • 预期返回结果如下。​
  • ​
    fs_vepfs-cnsh67*** 6442450944 27478016 6414972928 1% /tmp​
    ​
  1. 查看 Pod 中的挂载路径,即查看存储卷中的数据。​
  • ​
    kubectl exec vke-nas-static-deployment-xxx -- ls /tmp​
    ​
  • 预期返回结果如下。​
  • ​
    lost+found​
    ​
  1. 在存储卷中写入文件。​
  • ​
    kubectl exec vke-nas-static-deployment-xxx -- touch /tmp/test​
    ​
  1. 删除 Pod。​
  • ​
    kubectl delete pod vke-nas-static-deployment-xxx​
    ​
  1. 查看新创建 Pod 下的存储卷挂载路径。​
  • ​
    kubectl exec vke-nas-static-deployment-xxx -- ls /tmp​
    ​
  • 预期返回如下,可以看到存储卷中写入的文件依然存在,未随着 Pod 的删除而被删除,实现了数据的持久化存储。​
  • ​
    lost+found ​
    test​
    ​
相关文档​
最近更新时间:2026.04.07 11:15:41
这个页面对您有帮助吗?
有用
有用
无用
无用