如何在kubernetes / Docker中更改映射卷的权限

萨根·帕里亚尔(Sagan Pariyar)

我刚刚使用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

有人可以暗示我在这里做错了吗?

3小时4倍

这是因为码头工人。它仅在具有root权限的情况下挂载卷,并且可以使用该卷进行更改,chmod但只能在容器启动之后进行更改

您可以在这里阅读更多有关它的信息https://github.com/moby/moby/issues/2259这个问题已经存在很长时间了。

你能在kubernetes做的是使用fsGroup武力该卷是可写的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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章