You need to enable JavaScript to run this app.
导航

如何修改 TOS 存储的挂载配置,允许其他用户读写 TOS 存储卷?

最近更新时间2024.05.08 16:28:33

首次发布时间2024.05.08 16:28:33

对象存储 TOS 默认使用 Linux 的 root 权限进行挂载,若需要修改挂载配置,允许其他用户读写 TOS 存储卷,需要在 TOS 静态存储卷中增加additional_args字段的配置。

问题现象

无状态负载挂载 TOS 存储失败,错误信息显示无法挂载,且挂载设备失败。

原因分析

TOS 挂载默认使用 Linux 的 root 权限进行挂载,通过 s3fs 客户端并不能直接对 TOS 挂载点使用 chown 绑定用户权限。因此,其他用户没有读写 TOS 存储卷的权限。

解决方案

可通过 TOS 静态存储卷中增加additional_args字段配置的方式,修改挂载配置,允许其他用户读写 TOS 存储卷。添加配置的格式为additional_args: "-o allow_other -oumask=000",配置 PV 的 Yaml 示例如下:

注意

在 TOS 静态存储卷中增加additional_args字段配置时,需要注意以下情况:

  • 仅非绑定状态的 PV 才能够编辑、新增此配置,目的是为其他用户添加 TOS 存储卷的读写权限。
  • 若 PV 已经被绑定,要求解除绑定并删除spec.claimRef参数残留,再继续添加此参数配置,否则无法生效。
apiVersion: v1
kind: PersistentVolume
metadata:
  name: "pv-tos"
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 1Gi
  csi:
    driver: tos.csi.volcengine.com
    volumeHandle: pv-tos
    volumeAttributes:
      url: "http://tos-s3-cn-beijing.volces.com"
      bucket: "csi-test"
      path: /test
      additional_args: "-o allow_other -oumask=000"      # additional_args 字段配置,用于为其他用户添加 TOS 存储卷的读写权限。
    nodePublishSecretRef:
      name: tos-secret
      namespace: kube-system