【问题标题】:Kubernetes - setting custom permissions/file ownership per volume (and not per pod)Kubernetes - 为每个卷(而不是每个 pod)设置自定义权限/文件所有权
【发布时间】:2018-04-09 00:05:43
【问题描述】:

有没有办法在 Kubernetes 中以声明方式设置每个卷的权限/所有权?

用例:

  • 一个 pod 由两个容器组成,作为两个不同的用户/组运行,它们都是非 root 用户,并且无法 sudo
  • 容器各自挂载一个卷,需要在这些卷中创建文件(例如它们都想写日志)

我们知道我们可以使用fsGroup,但这是一个 pod 级别的声明。因此,即使我们在第一个容器中选择 fsGroup 等于用户,那么我们将在另一个容器中遇到权限问题。 (参考:Kubernetes: how to set VolumeMount user group and file permissions

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    一种解决方案是使用 init-container 更改挂载目录的权限

    init-container 需要挂载两个卷(来自两个容器),并执行所需的chown/chmod 操作。

    缺点:

    • 额外的容器,需要了解其他容器的特定(即 uid/gid)
    • init容器需要以root身份运行才能执行chown

    【讨论】:

    • 嗨@Adam - 你能找到替代解决方案吗?
    【解决方案2】:

    这可以通过添加一个具有 root 访问权限的 init 容器来完成。

        initContainers:
        - name: changeowner
          image: busybox
          command: ["sh", "-c", "chown -R 200:200 /<volume>"]   
          volumeMounts:
          - name: <your volume>
            mountPath: /<volume>
    

    【讨论】:

      猜你喜欢
      • 2016-03-09
      • 2019-04-04
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多