创建PVC
当前存储卷支持SSD、SATA类型的UDisk以及UFS,详见:
创建StorageClass
在创建持久化存储卷(persistentVolume)之前,你需要先创建StorageClass,然后在PVC中使用StorageClassName。
UK8S集群默认创建了两个StorageClass,你也可以创建一个新的StorageClass,示例及说明如下:
1、CSI版本(2019年9月17日之后创建的UK8S集群)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: udisk-ssd-test
provisioner: udisk.csi.ucloud.cn #存储供应方,此处不可更改。
parameters:
  type: "ssd"   # 存储介质,支持sdd和sata,必填
  fsType: "ext4"    # 文件系统,必填
  udataArkMode: "no"   # 是否开启方舟模式,默认不开启,非必填
  chargeType: "month" # 付费类型,支持dynamic、month、year,默认为month,非必填
  quantity: "1" # 购买时长,dynamic无需填写,可购买1-9个月,或1-10年
reclaimPolicy: Delete  # PV回收策略,支持Delete和Retain,默认为Delete,非必填
allowVolumeExpansion: true # 声明该存储类支持可扩容特性
mountOptions:
  - debug
  - rw备注:1.15之前的Kubernetes版本,mountOptions无法正常使用,请勿填写,详见Issue80191
2、flexVolume版本(2019年9月17日之前创建的UK8S集群)
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: udisk-ssd-test
provisioner: ucloud/udisk
parameters:
  type: ssd
reclaimPolicy: Retainprovisioner: 存储供应方,此处必须为ucloud/udisk,否则创建出来的StorageClass可能无效。
parameters.type: UDisk的存储介质类型,支持ssd和sata,默认为ssd。
reclaimPolicy: 回收策略,支持Delete和Retain,默认为Delete。
创建一个存储卷声明并Mount到Pod
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-pvc-claim
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: udisk-ssd-test #注意修改为你自己创建的StorageClassName
  resources:
    requests:
      storage: 20Gi
 
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - name: test
      mountPath: /data
    ports:
    - containerPort: 80
  volumes:
  - name: test
    persistentVolumeClaim:
      claimName: test-pvc-claim备注:受UDisk产品限制,PVC最小为20GB,步长为10GB。
容器启动后,我们可以登录容器执行df -h 命令,查看存储卷是否挂载成功。