全部产品
云市场
云游戏

使用 PVC 挂载静态存储卷

更新时间:2020-06-30 10:19:56

您可以通过绑定已存在的 PV 为 Pod 挂载静态存储卷。

前提条件

创建静态 PV

创建 PV 并绑定一个已经存在的云盘。您可以使用 Yaml 文件或者控制台界面创建 PV。

Yaml 样例如下:

  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4. labels:
  5. cafe.sofastack.io/diskId: d-zm0fd73z6tmf5j7pgbpe
  6. name: pv-efficient
  7. spec:
  8. accessModes:
  9. - ReadWriteOnce
  10. capacity:
  11. storage: 25Gi
  12. csi:
  13. driver: antcloud-csi
  14. fsType: ext4
  15. volumeAttributes:
  16. storage_type: cloud_disk
  17. volumeHandle: instance_test_efficiency
  18. storageClassName: csi-disk-efficiency

参数说明

参数名 参数说明 是否必选 备注
cafe.sofastack.io/diskId 阿里云的云盘 ID,格式为 d-xxx 您可以在资源管理控制台上的 云服务器 ECS > 存储与快照 > 云盘 中获取云盘 ID。
volumeAttributes 磁盘属性 遵循后端存储限制,如 阿里云盘限制
对于 csi-disk-ssd 和 csi-disk-efficiency 两种 Storage Class,最小的 size 都是 20G。
volumeHandle 表示后端存储的唯一 ID,由用户指定。 -

创建 PVC 并指定其绑定到 PV

您可以使用 Yaml 文件或者控制台界面创建 PVC。

Yaml 样例如下:

  1. apiVersion: v1
  2. kind: PersistentVolumeClaim
  3. metadata:
  4. name: test-pvc
  5. namespace: default
  6. spec:
  7. accessModes:
  8. - ReadWriteOnce
  9. resources:
  10. requests:
  11. storage: 25Gi
  12. storageClassName: csi-disk-efficiency
  13. volumeName: pv-efficient

说明:必须要有 volumeName 字段,指定已有的 PV。参数说明参考 挂载动态存储卷

使用 PVC

您可以在创建 Pod 时使用 PVC 挂载静态数据卷。

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: pod-with-disk
  5. namespace: default
  6. labels:
  7. app: nginx
  8. spec:
  9. tolerations:
  10. - key: node.kubernetes.io/unreachable
  11. effect: NoSchedule
  12. operator: Exists
  13. automountServiceAccountToken: false
  14. containers:
  15. - name: busybox
  16. image: reg-cnsh-nf.cloud.alipay.com/library/busybox
  17. command: ["sleep", "3000"]
  18. ports:
  19. - containerPort: 80
  20. volumeMounts:
  21. - name: data
  22. mountPath: "/data"
  23. volumes:
  24. - name: data
  25. persistentVolumeClaim:
  26. claimName: test-pvc

容器运行后,可以看到 Pod 的状态为 running:

  1. # kubectl get pod
  2. NAME READY STATUS RESTARTS AGE
  3. pod-with-disk 1/1 Running 0 103s