【发布时间】:2022-01-15 03:29:59
【问题描述】:
我尝试使用 helm 部署 mongodb,但出现此错误:
mkdir: cannot create directory /bitnami/mongodb/data : permision denied.
我也试过这个解决方案:
sudo chown -R 1001 /tmp/mongo
但它说没有这个目录。
【问题讨论】:
标签: kubernetes devops kubernetes-helm helm3
我尝试使用 helm 部署 mongodb,但出现此错误:
mkdir: cannot create directory /bitnami/mongodb/data : permision denied.
我也试过这个解决方案:
sudo chown -R 1001 /tmp/mongo
但它说没有这个目录。
【问题讨论】:
标签: kubernetes devops kubernetes-helm helm3
您在/bitnami/mongodb/data 上的权限被拒绝,并且您正在尝试修改另一个路径:/tmp/mongo。您可能根本没有这样的目录。
您需要更改您没有权限的资源的所有者,而不是随机(不相关)路径:)
您可能已经看过this github issue 和这个答案:
您收到该错误消息是因为容器无法挂载您在 docker-compose.yml 文件中指定的 /tmp/mongo 目录。
正如您在our changelog 中看到的那样,容器已迁移到非root 用户方法,这意味着用户
1001需要在/tmp/mongo 文件夹中具有读/写权限,以便可以挂载和用过的。您可以修改本地文件夹中的权限并尝试再次启动容器吗?
sudo chown -R 1001 /tmp/mongo
如果您要挂载/tmp/mongo 文件夹,此方法将起作用,这实际上不是很常见的行为。寻找另一个答案:
请注意,挂载主机路径卷不是使用这些容器的常用方法。如果使用 docker-compose,它将使用 docker 卷(已经处理了权限问题),同样适用于 Kubernetes 和 MongoDB helm chart,它将使用
securityContext部分来确保正确的权限。
在您的情况下,您只需将所有者更改为路径 /bitnami/mongodb/data 或在 Helm 图表上使用 Security Context,一切都会为您解决。
可能here 你可以通过示例上下文找到最有趣的部分:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
fsGroupChangePolicy: "OnRootMismatch"
【讨论】: