● OBS对象桶静态PV:
apiVersion: v1 kind: PersistentVolume metadata:
name: objbucket #名称替换为实际的对象桶PV名称 annotations:
pv.kubernetes.io/provisioned-by: everest-csi-provisioner spec:
accessModes:
- ReadWriteMany capacity:
storage: 1Gi mountOptions:
- default_acl=bucket-owner-full-control #新增的OBS挂载参数 csi:
driver: obs.csi.everest.io fsType: s3fs
volumeAttributes:
everest.io/obs-volume-type: STANDARD
everest.io/region: cn-north-4 #设置为当前区域id
storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner volumeHandle: objbucket #名称替换为实际的第三方租户对象桶名称
persistentVolumeReclaimPolicy: Retain #必须设置为Retain,删除PV时保留桶实际也无法删除 storageClassName: csi-obs-mountoption #可以关联某个新增自定义OBS StorageClass, 也可关联集 群自带的csi-obs
– mountOptions:新增的OBS挂载参数,允许桶所有者对桶中数据有完整的访 问权限,解决挂载第三方桶后写入数据、桶所有者无法读取的问题。挂载第 三方租户的对象存储使用场景下,default_acl必须设置为bucket-owner-full-control,default_acl的其他取值请参见OBS预定义的权限控制策略。
– persistentVolumeReclaimPolicy:挂载第三方租户的对象存储使用场景下,
persistentVolumeReclaimPolicy必须设置为Retain。删除PV时保留桶实际也 无法删除,因此CCE集群所在的SaaS服务提供商的业务平台需要管理第三方 桶PV的生命周期,单独删除PVC时PV不会被关联删除而被保留(Kubernetes 原生PV Retain回收策略的效果),需要调用Kubernetes原生接口进行静态PV 的创建和删除。
– storageClassName:可以关联某个新增自定义OBS StorageClass(创建自定 义OBS StorageClass),也可关联集群自带的csi-obs。
绑定的OBS对象桶PVC:
apiVersion: v1
kind: PersistentVolumeClaim metadata:
annotations:
csi.storage.k8s.io/fstype: s3fs
everest.io/obs-volume-type: STANDARD
volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner name: objbucketpvc #名称替换为实际的对象桶PVC名称
namespace: default spec:
accessModes:
- ReadWriteMany resources:
requests:
storage: 1Gi
storageClassName: csi-obs-mountoption #与绑定的PV关联的StorageClass保持一致 volumeName: objbucket #名称替换为实际需要绑定的对象桶PV名称
● OBS并行文件系统静态PV:
apiVersion: v1 kind: PersistentVolume metadata:
name: obsfscheck #名称替换为实际的并行文件系统PV名称 annotations:
pv.kubernetes.io/provisioned-by: everest-csi-provisioner spec:
accessModes:
- ReadWriteMany capacity:
storage: 1Gi mountOptions:
- default_acl=bucket-owner-full-control #新增的OBS挂载参数 csi:
driver: obs.csi.everest.io fsType: obsfs
volumeAttributes:
everest.io/obs-volume-type: STANDARD everest.io/region: cn-north-4
storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner
volumeHandle: obsfscheck #名称替换为实际的三方租户的并行文件系统名称
persistentVolumeReclaimPolicy: Retain #必须设置为Retain,删除PV时保留桶实际也无法删除 storageClassName: csi-obs-mountoption #可以关联某个新增自定义OBS StorageClass,也可关联 集群自带的csi-obs
– mountOptions:新增的OBS挂载参数,允许桶所有者对桶中数据有完整的访 问权限,解决挂载第三方桶后写入数据、桶所有者无法读取的问题。挂载第 三方租户的对象存储使用场景下,default_acl必须设置为bucket-owner-full-control,default_acl的其他取值请参见OBS预定义的权限控制策略。
– persistentVolumeReclaimPolicy:挂载第三方租户的对象存储使用场景下,
persistentVolumeReclaimPolicy必须设置为Retain。删除PV时保留桶实际也 无法删除,因此CCE集群所在的SaaS服务提供商的业务平台需要管理第三方 桶PV的生命周期,单独删除PVC时PV不会被关联删除而被保留(Kubernetes 原生PV Retain回收策略的效果),需要调用Kubernetes原生接口进行静态PV 的创建和删除。
– storageClassName:可以关联某个新增自定义OBS StorageClass(创建自定 义OBS StorageClass),也可关联集群自带的csi-obs。
绑定的OBS并行文件系统PVC:
apiVersion: v1
kind: PersistentVolumeClaim metadata:
annotations:
csi.storage.k8s.io/fstype: obsfs
everest.io/obs-volume-type: STANDARD
volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner name: obsfscheckpvc #名称替换为实际的并行文件系统PVC名称 namespace: default
spec:
accessModes:
- ReadWriteMany resources:
requests:
storage: 1Gi
storageClassName: csi-obs-mountoption #与绑定的PV关联的StorageClass保持一致 volumeName: obsfscheck #名称替换为实际的并行文件系统PV名称
● 创建自定义OBS StorageClass,用以关联静态PV(可选):
apiVersion: storage.k8s.io/v1 kind: StorageClass
metadata:
name: csi-obs-mountoption mountOptions:
- default_acl=bucket-owner-full-control parameters:
csi.storage.k8s.io/csi-driver-name: obs.csi.everest.io csi.storage.k8s.io/fstype: s3fs
everest.io/obs-volume-type: STANDARD provisioner: everest-csi-provisioner reclaimPolicy: Retain
volumeBindingMode: Immediate
– csi.storage.k8s.io/fstype:指定文件类型,支持“obsfs”与“s3fs”。取值 为s3fs时说明使用的obs对象桶,配套使用s3fs挂载;取值为obsfs时说明使用 的是obs并行文件系统,配套使用obsfs挂载。
– reclaimPolicy:指定创建的Persistent Volume的回收策略。该取值会设置到 基于新的PVC关联该SC动态创建的PV.spec.persistentVolumeReclaimPolicy 中。若设置为Delete,删除PVC时会触发关联删除外部OBS对象和该PV;若 设置为Retain,删除PVC时会保留PV和外部存储,需要单独清理PV。对于使 用导入关联三方桶对应的使用场景,该SC只做关联静态PV使用(需要设置为 Retain),不涉及使用动态创建。