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

容器服务

复制全文
下载 pdf
NFS 访问方式
通过 NFS 使用 vePFS 动态存储卷
复制全文
下载 pdf
通过 NFS 使用 vePFS 动态存储卷
容器服务支持通过协议服务 NFS 使用 vePFS 文件存储,本文以 kubectl 命令行方式为例,为您介绍如何通过协议服务 NFS 使用 vePFS 文件动态存储卷。​
说明​
【邀测】协议服务 NFS 目前处于邀测阶段,如需使用,请联系客户经理。​
前提条件​
  • 已在本地安装 kubectl 工具,并通过 kubectl 连接目标集群。详情请参见 连接集群。​
操作步骤​
步骤一:创建存储类(StorageClass)​
  1. 创建 StorageClass 的 YAML 文件。示例文件sc-demo.yaml代码如下:​
  • ​
    apiVersion: storage.k8s.io/v1​
    kind: StorageClass​
    metadata:​
    name: sc-demo # 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,表示 vePFS 文件存储​
    fsType: vepfs # 文件系统类型,取值为 vepfs,表示 vePFS 文件存储​
    server: export-d60***.cnbj645***.3pspvso***.vepfs.ivolces.com # vePFS 目标导出目录挂载点​
    subPath: /test # subPath 挂载后的子目录,系统将在这个子目录中创建目录作为动态卷的后端存储​
    volumeAs: subpath # 创建的子目录类型。取值:subpath(子路径),filesystem(文件系统)​
    provisioner: nas.csi.volcengine.com # 存储挂载依赖的驱动​
    reclaimPolicy: Retain # 回收策略。取值:Retain(保留策略),Delete(删除策略)​
    volumeBindingMode: Immediate # 卷绑定模式。取值:Immediate(立即绑定和分配),WaitForFirstConsumer(延迟存储卷的绑定和分配)​
    ​
  1. 执行以下命令,创建 StorageClass。​
  • ​
    kubectl apply -f sc-demo.yaml​
    ​
步骤二:创建存储卷声明(PVC)​
  1. 创建 PVC 的 YAML 文件。示例文件pvc-demo.yaml代码如下:​
  • ​
    apiVersion: v1​
    kind: PersistentVolumeClaim​
    metadata:​
    name: pvc-demo​
    namespace: default​
    spec:​
    accessModes: # PVC 访问方式。仅支持 ReadWriteMany,表示多点读写​
    - ReadWriteMany​
    resources:​
    requests:​
    storage: 20Gi # 声明的存储容量​
    storageClassName: sc-demo # 已创建的存储类名称​
    ​
  1. 执行以下命令,创建 PVC。​
  • ​
    kubectl apply -f pvc-demo.yaml​
    ​
  1. 执行以下命令,查看 PVC 与 StorageClass 的动态绑定结果。​
  • ​
    kubectl get pvc​
    ​
  • 预期输出结果如下,表示 vePFS 已完成 PVC 与 PV 的动态绑定。​
  • ​
    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE​
    pvc-demo Bound pvc-4b29df0*** 20Gi RWX sc-demo <unset> 40m​
    ​
步骤三:创建应用并挂载存储卷​
  1. 创建 Deployment 的 YAML 文件。示例文件deployment-demo.yaml代码如下:​
  • ​
    apiVersion: apps/v1​
    kind: Deployment​
    metadata:​
    name: deployment-demo​
    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: pvc-demo # 已创建的 PVC 名称​
    ​
  1. 执行以下命令,创建 Deployment。​
  • ​
    kubectl apply -f deployment-demo.yaml​
    ​
结果验证​
按照上文示例创建工作负载并挂载存储卷后,您可以通过以下方式验证存储卷的挂载和持久化存储。​
  1. 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。​
  • ​
    kubectl exec deployment-demo-6c55*** -- df | grep tmp​
    ​
  • 预期返回结果如下。​
  • ​
    export-d60***.cnbj64***.3pspvsoy8***.vepfs.ivolces.com:/vepfs/test/pvc-4b29*** 6442450944 35509248 6406941696 1% /tmp​
    ​
  1. 查看 Pod 中的挂载路径,即查看存储卷中的数据。​
  • ​
    kubectl exec deployment-demo-6c55*** -- ls /tmp​
    ​
  • 预期返回结果如下。​
  • ​
    lost+found​
    ​
  1. 在存储卷中写入文件。​
  • ​
    kubectl exec deployment-demo-6c55*** -- touch /tmp/test​
    ​
  1. 删除 Pod。​
  • ​
    kubectl delete pod deployment-demo-6c55***​
    ​
  1. 查看新创建 Pod 下的存储卷挂载路径。​
  • ​
    kubectl exec deployment-demo-6c55*** -- ls /tmp​
    ​
  • 预期返回如下,可以看到存储卷中写入的文件依然存在,未随着 Pod 的删除而被删除,实现了数据的持久化存储。​
  • ​
    lost+found ​
    test​
    ​
​
最近更新时间:2026.11.02 21:16:09
这个页面对您有帮助吗?
有用
有用
无用
无用