设置对象存储挂载参数
本章节主要介绍如何设置对象存储的挂载参数。您可以在PV中设置挂载参数,然后通过PVC绑定PV,也可以在StorageClass中设置挂载参数,然后使用StorageClass创建PVC,动态创建出的PV会默认带有StorageClass中设置的挂载参数。
对象存储挂载参数
在PV中设置挂载参数
在PV中设置挂载参数可以通过mountOptions字段实现,如下所示,mountOptions支持挂载的字段请参见对象存储挂载参数。
- 使用kubectl连接集群,详情请参见通过kubectl连接集群。
- 在PV中设置挂载参数,示例如下:
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: everest-csi-provisioner everest.io/reclaim-policy: retain-volume-only # 可选字段,删除PV,保留底层存储卷 name: pv-obs # PV的名称 spec: accessModes: - ReadWriteMany # 访问模式,对象存储必须为ReadWriteMany capacity: storage: 1Gi # 对象存储容量大小 csi: driver: obs.csi.everest.io # 挂载依赖的存储驱动 fsType: obsfs # 实例类型 volumeHandle: <your_volume_id> # 对象存储的名称 volumeAttributes: storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner everest.io/obs-volume-type: STANDARD everest.io/region: <your_region> # 对象存储的区域 everest.io/enterprise-project-id: <your_project_id> # 可选字段,企业项目ID,如果指定企业项目,则创建PVC时也需要指定相同的企业项目,否则PVC无法绑定PV。 nodePublishSecretRef: # 设置对象存储的自定义密钥 name: <your_secret_name> # 自定义密钥的名称 namespace: <your_namespace> # 自定义密钥的命名空间 persistentVolumeReclaimPolicy: Retain # 回收策略 storageClassName: csi-obs # 存储类名称 mountOptions: # 挂载参数 - umask=027
- PV创建后,可以创建PVC关联PV,然后在工作负载的容器中挂载,具体操作步骤请参见通过静态存储卷使用已有对象存储。
在StorageClass中设置挂载参数
在StorageClass中设置挂载参数同样可以通过mountOptions字段实现,如下所示,mountOptions支持挂载的字段请参见对象存储挂载参数。
- 使用kubectl连接集群,详情请参见通过kubectl连接集群。
- 创建自定义的StorageClass,示例如下:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: csi-obs-mount-option provisioner: everest-csi-provisioner parameters: csi.storage.k8s.io/csi-driver-name: obs.csi.everest.io csi.storage.k8s.io/fstype: s3fs everest.io/obs-volume-type: STANDARD reclaimPolicy: Delete volumeBindingMode: Immediate mountOptions: # 挂载参数 - umask=027
- StorageClass设置好后,就可以使用这个StorageClass创建PVC,动态创建出的PV会默认带有StorageClass中设置的挂载参数,具体操作步骤请参见通过静态存储卷使用已有对象存储。