云容器引擎 CCE-存储类(StorageClass):CCE默认存储类

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

CCE默认存储类

目前CCE默认提供csi-disk、csi-nas、csi-obs等StorageClass,在声明PVC时使用对应StorageClassName,就可以自动创建对应类型PV,并自动创建底层的存储资源。

执行如下kubectl命令即可查询CCE提供的默认StorageClass。您可以使用CCE提供的CSI插件自定义创建StorageClass。

# kubectl get sc
NAME                PROVISIONER                     AGE
csi-disk            everest-csi-provisioner         17d          # 云硬盘
csi-disk-topology   everest-csi-provisioner         17d          # 延迟创建的云硬盘
csi-nas             everest-csi-provisioner         17d          # 文件存储 1.0
csi-sfs             everest-csi-provisioner         17d          # 文件存储 3.0
csi-obs             everest-csi-provisioner         17d          # 对象存储
csi-sfsturbo        everest-csi-provisioner         17d          # 极速文件存储
csi-local           everest-csi-provisioner         17d          # 本地持久卷
csi-local-topology  everest-csi-provisioner         17d          # 延迟创建的本地持久卷
每个StorageClass都包含了动态制备PersistentVolume时会使用到的默认参数。如以下云硬盘存储类的示例:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: csi-disk
provisioner: everest-csi-provisioner
parameters:
  csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
  csi.storage.k8s.io/fstype: ext4
  everest.io/disk-volume-type: SAS
  everest.io/passthrough: 'true'
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
表1 关键参数说明

参数

描述

provisioner

存储资源提供商,CCE均由everest插件提供,此处只能填写everest-csi-provisioner。

parameters

存储参数,不同类型的存储支持的参数不同。详情请参见表2

reclaimPolicy

用来指定创建PV的persistentVolumeReclaimPolicy字段值,支持Delete和Retain。如果StorageClass 对象被创建时没有指定reclaimPolicy,它将默认为Delete。

  • Delete:表示动态创建的PV,在PVC销毁的时候PV也会自动销毁。
  • Retain:表示动态创建的PV,在PVC销毁的时候PV不会自动销毁。

allowVolumeExpansion

定义由此存储类创建的PV是否支持动态扩容,默认为false。是否能动态扩容是由底层存储插件来实现的,这里只是一个开关。

volumeBindingMode

表示卷绑定模式,即动态创建PV的时间,分为立即创建和延迟创建。

  • Immediate:创建PVC时完成PV绑定和动态创建。
  • WaitForFirstConsumer:延迟PV的绑定和创建,当在工作负载中使用该PVC时才执行PV创建和绑定流程。

mountOptions

该字段需要底层存储支持,如果不支持挂载选项,却指定了挂载选项,会导致创建PV操作失败。

表2 parameters参数说明

存储类型

参数

是否必选

描述

云硬盘

csi.storage.k8s.io/csi-driver-name

驱动类型,使用云硬盘类型时,参数取值固定为“disk.csi.everest.io”

csi.storage.k8s.io/fstype

使用云硬盘时,支持的参数值为“ext4”

everest.io/disk-volume-type

云硬盘类型,全大写。
  • SAS:高I/O
  • SSD:超高I/O
  • GPSSD:通用型SSD
  • ESSD:极速型SSD
  • GPSSD2:通用性SSD v2,Everest版本为2.4.4及以上支持使用,使用时需同时指定everest.io/disk-iops和everest.io/disk-throughput注解。
  • ESSD2:极速型SSD v2,Everest版本为2.4.4及以上支持使用,使用时需指定everest.io/disk-iops注解。

everest.io/passthrough

参数取值固定为“true”,表示云硬盘的设备类型为SCSI类型。不允许设置为其他值。

文件存储

csi.storage.k8s.io/csi-driver-name

驱动类型,使用文件存储类型时,参数取值固定为“nas.csi.everest.io”

csi.storage.k8s.io/fstype

使用文件存储时,支持的参数值为“nfs”

everest.io/share-access-level

参数取值固定为“rw”,表示文件存储可读写。

everest.io/share-access-to

集群所在VPC ID。

everest.io/share-is-public

参数取值固定为“false”,表示文件共享为私人可见。

使用SFS 3.0时无需填写。

everest.io/sfs-version

仅使用SFS 3.0时需要填写,固定值为“sfs3.0”

极速文件存储

csi.storage.k8s.io/csi-driver-name

驱动类型,使用极速文件存储类型时,参数取值固定为“sfsturbo.csi.everest.io”

csi.storage.k8s.io/fstype

使用极速文件存储时,支持的参数值为“nfs”

everest.io/share-access-to

集群所在VPC ID。

everest.io/share-expand-type

扩展类型,默认值为“bandwidth”,表示增强型的文件系统。该字段不起作用。

everest.io/share-source

参数取值固定为“sfs-turbo”

everest.io/share-volume-type

极速文件存储类型,默认值为“STANDARD”,表示标准型和标准型增强版。该字段不起作用。

对象存储

csi.storage.k8s.io/csi-driver-name

驱动类型,使用对象存储类型时,参数取值固定为“obs.csi.everest.io”

csi.storage.k8s.io/fstype

实例类型,支持的参数值为“s3fs”“obsfs”

  • obsfs:并行文件系统,配套使用obsfs挂载,推荐使用。
  • s3fs:对象桶,配套使用s3fs挂载。

everest.io/obs-volume-type

对象存储类型。

  • fsType设置为s3fs时,支持STANDARD(标准桶)、WARM(低频访问桶)。
  • fsType设置为obsfs时,该字段不起作用。
support.huaweicloud.com/usermanual-cce/cce_10_0380.html