云容器引擎 CCE-存储类StorageClass:自定义StorageClass
自定义StorageClass
自定义高I/O类型StorageClass,使用YAML描述如下,这里取名为csi-disk-sas,指定云硬盘类型为SAS,即高I/O。
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: csi-disk-sas # 高IO StorageClass名字,用户可自定义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类型,用户不可自定义 everest.io/passthrough: "true"provisioner: everest-csi-provisionerreclaimPolicy: DeletevolumeBindingMode: ImmediateallowVolumeExpansion: true # true表示允许扩容
超高I/O类型StorageClass,这里取名为csi-disk-ssd,指定云硬盘类型为SSD,即超高I/O。
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: csi-disk-ssd # 超高I/O StorageClass名字,用户可自定义parameters: csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io csi.storage.k8s.io/fstype: ext4 everest.io/disk-volume-type: SSD # 云硬盘超高I/O类型,用户不可自定义 everest.io/passthrough: "true"provisioner: everest-csi-provisionerreclaimPolicy: DeletevolumeBindingMode: ImmediateallowVolumeExpansion: true
reclaimPolicy:底层云存储的回收策略,支持Delete、Retain回收策略。
- Delete:删除PVC,PV资源与云硬盘均被删除。
- Retain:删除PVC,PV资源与底层存储资源均不会被删除,需要手动删除回收。PVC删除后PV资源状态为“已释放(Released)”,不能直接再次被PVC绑定使用。
此处设置的回收策略对SFS Turbo类型的存储无影响,因此删除集群或删除PVC时不会回收包周期的SFS Turbo资源。
如果数据安全性要求较高,建议使用Retain以免误删数据。
定义完之后,使用kubectl create命令创建。
# kubectl create -f sas.yamlstorageclass.storage.k8s.io/csi-disk-sas created# kubectl create -f ssd.yamlstorageclass.storage.k8s.io/csi-disk-ssd created
再次查询StorageClass,回显如下,可以看到多了两个类型的StorageClass。
# kubectl get scNAME PROVISIONER AGEcsi-disk everest-csi-provisioner 17dcsi-disk-sas everest-csi-provisioner 2m28scsi-disk-ssd everest-csi-provisioner 16scsi-disk-topology everest-csi-provisioner 17dcsi-nas everest-csi-provisioner 17dcsi-obs everest-csi-provisioner 17dcsi-sfsturbo everest-csi-provisioner 17d
其他类型存储自定义方法类似,可以使用 kubectl 获取YAML,在YAML基础上根据需要修改。
- 文件存储
# kubectl get sc csi-nas -oyamlkind: StorageClassapiVersion: storage.k8s.io/v1metadata: name: csi-nasprovisioner: everest-csi-provisionerparameters: 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: 5e3864c6-e78d-4d00-b6fd-de09d432c632 # 集群所在VPC ID everest.io/share-is-public: 'false' everest.io/zone: xxxxx # 可用区reclaimPolicy: DeleteallowVolumeExpansion: truevolumeBindingMode: Immediate
- 对象存储
# kubectl get sc csi-obs -oyamlkind: StorageClassapiVersion: storage.k8s.io/v1metadata: name: csi-obsprovisioner: everest-csi-provisionerparameters: csi.storage.k8s.io/csi-driver-name: obs.csi.everest.io csi.storage.k8s.io/fstype: s3fs # 对象存储文件类型,s3fs是对象桶,obsfs是并行文件系统 everest.io/obs-volume-type: STANDARD # OBS桶的存储类别reclaimPolicy: DeletevolumeBindingMode: Immediate