gpt4 book ai didi

kubernetes - 无法写入文件。以 root 身份安装的卷

转载 作者:行者123 更新时间:2023-12-02 12:04:46 26 4
gpt4 key购买 nike

我正在启动一个需要将数据写入卷的 Pod(由非 Root 用户提供)。音量来自 PVC。

pod定义很简单

kind: Pod
apiVersion: v1
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: test-pvc
containers:
- name: task-pv-container
image: jnlp/jenkins-slave:latest
command: ["/bin/bash"]
args: ["-c", "sleep 500"]
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage

当我 exec进入 Pod 并尝试写入 /usr/share/nginx/html
我明白了
jenkins@task-pv-pod:/usr/share/nginx/html$ touch test
touch: cannot touch ‘test’: Permission denied

查看目录的权限
jenkins@task-pv-pod:~$ ls -ld /usr/share/nginx/html
drwxr-xr-x 3 root root 4096 Mar 29 15:52 /usr/share/nginx/html

很明显,只有 root 用户可以写入 /usr/share/nginx/html但这不是我想要的。

有没有办法更改已安装卷的权限?

最佳答案

您可以考虑使用 初始化容器 挂载您的卷并更改权限。 initContainer 将在主容器启动之前运行。这种用法的通常模式是使用一个 busybox 镜像(~22 MB)来挂载卷并在目录上运行 chown 或 chmod。当您的 pod 的主容器运行时,卷将具有正确的所有权/访问权限。

或者,您可以考虑使用 initContainer 注入(inject)正确的文件,如 this example 所示。 .

希望这可以帮助!

关于kubernetes - 无法写入文件。以 root 身份安装的卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com