【问题标题】:How to change permission of mapped volume in kubernetes/Docker如何在 Kubernetes/Docker 中更改映射卷的权限
【发布时间】:2017-10-17 05:59:21
【问题描述】:

我刚刚使用 Docker 文件创建了图像,并更改了我刚刚使用的用户:

USER myuser

我们正在使用目录来存储数据,我们使用以下方式更改目录权限:

chown -R myuser:myuser /data-dir

这个 Docker 文件用于 etcd,我们希望 etcd 使用 /data-dir 来存储数据。现在,我们使用 kubernetes yml 文件将 /data-dir 映射到 efs 卷。

使用以下代码:

volumeMounts:
        - name: etcdefs
          mountPath: /data-dir
      volumes:
      - name: etcdefs
        persistentVolumeClaim:
          claimName: efs-etcd

我希望在此之后,映射目录 /data-dir 应该具有 myuser:myuser 的权限,但它会将目录设置为 root:root

谁能建议我在这里做错了什么?

【问题讨论】:

    标签: docker kubernetes


    【解决方案1】:

    这是因为码头工人。它仅使用 root 权限安装卷,您可以使用 chmod 更改它,但只能在容器启动后。

    您可以在此处阅读更多信息https://github.com/moby/moby/issues/2259 这个问题很久了。

    你可以在 kubernetes 中做的是使用 fsGroupforce 指定的 GID 可以写卷。这是有效的解决方案并记录在案。更多信息在这里https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    这是一个示例部署:

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: alpine
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            app: alpine
        spec:
          securityContext:
            fsGroup: 1000
          containers:
            - name: alpine
              image: alpine
              volumeMounts:
                  - mountPath: /var/alpine
                    name: alpine
          volumes:
            - name: alpine
              awsElasticBlockStore:
                volumeID: vol-1234567890
                fsType: ext4
    

    【讨论】:

    • 嘿,你能给我举个例子,说明如何通过 fsGroup 使用 kubernetes。在我的例子中给出上面
    • @SaganPariyar 我已经修改了我的答案,现在它有使用fsGroup的示例部署
    • 嘿,谢谢你的回答,实际上错误是别的。早些时候,我们使用 root 制作了 docker 图像,并在映射时使用 root 创建了目录,下次当我使用 myuser 作为映射卷时,已经使用 root 用户创建了目录,因此它给出了权限问题。我只是删除目录并使用 myuser 重新创建它,它工作正常。
    • 很高兴听到你解决它。我想到的一件事是,在容器中创建一个目录会使你容易改变 docker 挂载卷的方式,你会使用 kubernetes fsGroup 选项。
    • 从 configMap 挂载的卷怎么样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2017-09-23
    • 2017-07-31
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多