全部产品
云市场

使用 PVC 挂载静态存储卷

更新时间:2019-08-30 17:07:03

您可以通过绑定已存在的 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: 20Gi
  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. spec:
  6. accessModes:
  7. - ReadWriteOnce
  8. resources:
  9. requests:
  10. storage: 25Gi
  11. storageClassName: csi-disk-efficiency
  12. volumeName: pv-efficient

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

使用 PVC

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

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

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

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