使用委托凭据挂载对象存储卷
在使用CCE进行应用部署时,如果需要将对象存储服务(OBS)作为持久化存储挂载到容器中,传统做法依赖于手动配置的访问密钥(AKSK)。为了满足更高安全标准的需求,CCE支持使用委托挂载对象存储卷,实现精细化粒度的权限控制,无需再手动创建和管理AKSK密钥。
前提条件
- CCE容器存储(Everest)要求2.5.1及以上版本。
- 集群要求v1.28及以上版本,具体版本如下:
- v1.28集群:v1.28.15-r80及以上版本
- v1.29集群:v1.29.15-r40及以上版本
- v1.30集群:v1.30.14-r40及以上版本
- v1.31集群:v1.31.14-r0及以上版本
- v1.32集群:v1.32.9-r0及以上版本
- v1.33集群:v1.33.7-r0及以上版本
- v1.34集群:v1.34.2-r0及以上版本
- 其他更高版本
约束与限制
- 使用委托凭据挂载对象存储卷时,关联的委托不允许删除,否则业务容器将无法访问已挂载的对象存储。
- 暂不支持安全容器。
使用委托挂载对象存储卷
目前CCE支持使用全局委托和工作负载委托挂载对象存储卷,主要差异如下:
- 全局委托:直接使用在CCE容器存储(Everest)插件中配置的委托挂载对象存储卷。
- 工作负载委托:使用存储卷关联工作负载的委托权限挂载对象存储卷,可以实现更加精细化粒度的权限控制,但是需要您提前为对应的工作负载配置好工作负载的ServiceAccount和委托的关联关系,详情请参见在CCE集群中使用容器组身份(Pod Identity)获取IAM凭证。
动态创建对象存储卷
您可以通过以下方式进行创建。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-obs-auto
namespace: default
annotations:
everest.io/obs-volume-type: STANDARD # 对象存储类型
csi.storage.k8s.io/fstype: obsfs # 实例类型
everest.io/csi.authentication-source: "driver" # 使用的委托方式,driver表示使用插件委托,pod表示使用工作负载的委托
spec:
accessModes:
- ReadWriteMany # 对象存储必须为ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: csi-obs # StorageClass类型为对象存储
|
参数 |
描述 |
|---|---|
|
everest.io/csi.authentication-source |
表示使用委托挂载对象存储的方式。 取值范围:“driver”或“pod”
注意:
配置委托挂载时,请不要同时指定自定义密钥(即csi.storage.k8s.io/node-publish-secret-name和csi.storage.k8s.io/node-publish-secret-namespace参数),如果配置了自定义密钥则优先使用自定义密钥进行对象存储挂载。 |
其余参数说明请参见kubectl命令行方式。
静态创建对象存储卷
您可以通过以下方式进行创建。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-obs-example
annotations:
pv.kubernetes.io/provisioned-by: everest-csi-provisioner
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 1Gi
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
everest.io/csi.authentication-source: driver # 使用委托挂载对象存储
volumeHandle: obs-normal-static-pv
persistentVolumeReclaimPolicy: Delete
storageClassName: csi-obs
|
参数 |
描述 |
|---|---|
|
everest.io/csi.authentication-source |
表示使用委托挂载对象存储的方式。 取值范围:“driver”或“pod”
|
其余参数说明请参见kubectl命令行方式。

