搜索本产品文档关键词
挂载PFS并行文件存储
所有文档
menu

容器实例 BCI

挂载PFS并行文件存储

PFS 概述

并行文件存储服务PFS (Parallel Filesystem Service),是百度智能云提供的完全托管、简单可扩展的并行文件存储系统,针对高性能计算场景提供亚毫秒级的访问能力和高IOPS的数据读写请求能力。同时,百度智能云PFS提供简单、易操作的接口,免去部署、维护费用的同时,最大化提升您的业务效率。更多信息参见PFS说明

注意:
挂载PFS并行文件存储功能正在内测中,如需使用可提交工单申请。

提前准备

创建PFS实例

  1. 创建PFS,操作步骤请参考创建并行文件系统

    注意:
    PFS实例须与容器集群处于同一VPC内。

  2. 从页面上获取PFS连接地址,以备后续部署存储插件时使用。
    PFS1.png

配置示例

动态挂载

  1. 创建PVC,注意storageClassName需要指定为上述安装插件时填写的storageClass名称。
Plain Text
1# 按需指定PVC存储空间
2$ cat >pfs-pvc.yaml <<EOF
3kind: PersistentVolumeClaim
4apiVersion: v1
5metadata:
6  name: csi-pvc-pfs
7  namespace: default
8spec:
9  accessModes:
10    - ReadWriteMany
11  storageClassName: pfs-sc
12  resources:
13    requests:
14      storage: 50Gi # 用户指定PVC存储空间
15EOF
16$ kubectl create -f pfs-pvc.yaml
  1. 检查PVC状态为Bound。
Plain Text
1$ kubectl get pvc csi-pvc-pfs
2NAME              STATUS    VOLUME                 CAPACITY   ACCESS MODES   STORAGECLASS   AGE
3csi-pvc-pfs       Bound     pvc-1ab36e4d1d2711e9   50Gi       RWX            pfs-sc         4s
  1. 在 Pod 中挂载PVC,要求 Pod 和 PVC 在同一个 namespace 下。
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  name: test-pvc-pod
5  namespace: default
6  labels:
7    app: test-pvc-pod
8spec:
9  containers:
10  - name: test-pvc-pod
11    image: nginx
12    volumeMounts:
13      - name: pfs-pvc
14        mountPath: "/pfs-volume"
15  volumes:
16    - name: pfs-pvc
17      persistentVolumeClaim:
18        claimName: csi-pvc-pfs

静态挂载

  1. 创建静态PV和PVC。
    通过 pv.spec.csi.volumeAttributes.path 指定需要挂载的路径,该路径为相对于安装插件时填写的parentDir路径的相对路径。

    • 注意storageClassName需要指定为上述安装插件时填写的storageClass不同的名称,防止被动态创建流程接管。不要求该storageClass在集群中存在,只要PV和PVC的storageClassName一致即可,否则PV和PVC无法互相绑定。
    • 例如,按照下述示例yaml创建,则该PV在pfs中的路径为 /kubernetes/exist/some/dir。如果对应的路径不存在,在挂载PV时会自动创建该路径。
Plain Text
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4  name: static-pv-pfs
5spec:
6  accessModes:
7  - ReadWriteMany
8  storageClassName: pfs-static-sc
9  capacity:
10    storage: 100Gi
11  csi:
12    driver: csi-clusterfileplugin
13    volumeHandle: data-id
14    volumeAttributes:
15      # the path is the related path to parentDir
16      path: exist/some/dir
17
18---
19kind: PersistentVolumeClaim
20apiVersion: v1
21metadata:
22  name: static-pvc-pfs
23  namespace: default
24spec:
25  accessModes:
26    - ReadWriteMany
27  storageClassName: pfs-static-sc
28  resources:
29    requests:
30      storage: 100Gi
  1. 检查PVC状态为Bound,并且与对应的PV绑定。
Plain Text
1$ kubectl get pvc
2NAME             STATUS   VOLUME          CAPACITY   ACCESS MODES   STORAGECLASS    AGE
3static-pvc-pfs   Bound    static-pv-pfs   100Gi      RWX            pfs-static-sc   10s
  1. 在 Pod 中挂载PVC,要求 Pod 和 PVC 在同一个 namespace 下。
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  name: test-pvc-pod
5  namespace: default
6  labels:
7    app: test-pvc-pod
8spec:
9  containers:
10  - name: test-pvc-pod
11    image: nginx
12    volumeMounts:
13      - name: pfs-pvc
14        mountPath: "/pfs-volume"
15  volumes:
16    - name: pfs-pvc
17      persistentVolumeClaim:
18        claimName: static-pvc-pfs
上一篇
挂载ConfigMap数据卷
下一篇
容器配置