1

如何让非 root 用户完全访问 Kubernetes(pod)中已安装的卷路径?

我在主机上使用一个卷(/workspace/projects 路径)并写入如下目录。

volumeMounts:
-name: workspace
 mountPath: /workspace/projects

因为,我将 git 存储库内容复制到/projects目录,所以 git 默认将权限设置为 755。我想将权限设置为 775,因为无法写入/project目录。

你能告诉我什么是最好的方法吗?我看到了InitContainers,不确定是否有更好的解决方案。感谢任何帮助!提前致谢!

4

1 回答 1

1

当您必须以非 root 用户身份在容器内运行进程并将卷挂载到 pod 时。但卷有root:root权限。

授予对特定用户 initContainer 的访问权限是一种方法,如下所示

initContainers:
- name: volume-mount-permission
  image: busybox
  command: ["sh", "-c", "chmod 775 /workspace/projects && chown -R <user> /workspace/projects"]
  volumeMounts:
  -name: workspace
   mountPath: /workspace/projects

您还可以使用安全上下文。创建用户和组,将用户添加到 Dockerfile 中的组并在规范中设置以下内容

spec:
  securityContext:
    runAsUser: <UID>
    runAsGroup: <GID>
    fsGroup: <GID>
于 2020-04-28T19:32:39.390 回答