使用 PVC 挂载动态存储卷

挂载动态存储卷是基于 Storage Class 实现的,在挂载动态存储卷前,需要 AKS 管理员创建存储类型(StorageClass)。

说明

目前敏捷 PaaS 底座环境下,AKS 未对接阿里云的 NAS 及云盘存储,若要使用存储功能,需要您安装第三方存储插件。

前提条件

创建存储类型

创建 PVC

您需要在创建 Pod 前创建存储声明,供创建 Pod 时使用。PVC 创建后,会有对应的 PV 自动创建出来。

云盘类型 PVC 样例

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 25Gi
  storageClassName: csi-disk-efficiency # csi-disk-ssd

参数说明

参数名

参数说明

是否必选

备注

accessModes

只读/读写

仅支持:ReadWriteOnce

storage

存储空间大小

遵循后端存储限制,参考 使用限制。对于 csi-disk-ssd 和 csi-disk-efficiency 两种 Storage Class,最小的存储空间都是 20Gi,否则 PV 无法创建成功,PVC 会一直处于 pending 状态。

storageClassName

storage class名字

必选指定一个已经存在的名字,否则云盘无法创建。

NAS 类型 PVC 样例

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 25Gi
  storageClassName: csi-nas-capacity # 或者 csi-nas-performance
重要

对于 NAS 存储,其对应的存储空间限制能力将不会生效,不会限制容器在运行时数据的写入量,仅仅用做 PV-PVC 在绑定过程的匹配。

参数说明

参数名

参数说明

是否必选

备注

accessModes

只读/读写

可选值:- ReadWriteOnce- ReadWriteMany

storage

存储空间大小

遵循后端存储限制,如阿里云 NAS 限制。文件系统容量上限都为 1PB(性能型)或者 10PB(容量型)。

storageClassName

storage class 名字

必选指定一个已经存在的名字,否则云盘无法创建。

使用 PVC

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

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-nas
  labels:
    app: nginx
spec:
  tolerations:
  - key: node.kubernetes.io/unreachable
    effect: NoSchedule
    operator: Exists
  automountServiceAccountToken: false
  containers:
  - name: busybox
    image: reg-cnsh-nf.cloud.alipay.com/library/busybox
    command: ["sleep", "3000"]
    ports:
    - containerPort: 80
    volumeMounts:
      - name: data
        mountPath: "/data"
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: test-pvc

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

# kubectl get pod
NAME            READY   STATUS    RESTARTS   AGE
pod-with-nas   1/1     Running   0          103s