云容器引擎 CCE-存储类(StorageClass):自定义存储类应用场景

时间:2024-05-07 20:44:18

自定义存储类应用场景

在CCE中使用存储时,最常见的方法是创建PVC时通过指定StorageClassName定义要创建存储的类型,如下所示,使用PVC申请一个SAS(高I/O)类型云硬盘/块存储。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-evs-example
  namespace: default
  annotations:
    everest.io/disk-volume-type: SAS
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: csi-disk

可以看到在CCE中如果需要指定云硬盘的类型,是通过everest.io/disk-volume-type字段指定,这里SAS是云硬盘的类型。

以上是较为基础的StorageClass使用方法,在实际应用中,也可以使用StorageClass进行更为简便的操作:

应用场景

解决方案

操作步骤

在使用annotations指定存储配置时,配置较为繁琐。例如此处使用everest.io/disk-volume-type字段指定云硬盘的类型。

在StorageClass的parameters字段中定义PVC的annotations,编写YAML时只需要指定StorageClassName。

例如,将SAS、SSD类型云硬盘分别定义一个StorageClass,比如定义一个名为csi-disk-sas的StorageClass,这个StorageClass创建SAS类型的存储,

自定义StorageClass

当用户从自建Kubernetes或其他Kubernetes服务迁移到CCE,原先的应用YAML中使用的StorageClass与CCE中使用的不同,导致使用存储时需要修改大量YAML文件或Helm Chart包,非常繁琐且容易出错。

在CCE集权中创建与原有应用YAML中相同名称的StorageClass,迁移后无需再修改应用YAML中的StorageClassName。

例如,迁移前使用的云硬盘存储类为disk-standard,在迁移CCE集群后,可以复制CCE集群中csi-disk存储类的YAML,将其名称修改为disk-standard后重新创建。

在YAML中必须指定StorageClassName才能使用存储,不指定StorageClass时无法正常创建。

在集群中设置默认的StorageClass,则YAML中无需指定StorageClassName也能创建存储。

指定默认StorageClass

support.huaweicloud.com/usermanual-cce/cce_10_0380.html