Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes chown:更改'的所有权/数据/db';:不允许操作_Kubernetes_Kubernetes Security - Fatal编程技术网

Kubernetes chown:更改'的所有权/数据/db';:不允许操作

Kubernetes chown:更改'的所有权/数据/db';:不允许操作,kubernetes,kubernetes-security,Kubernetes,Kubernetes Security,我们是否可以使用nfs卷插件来维护kubernetes集群之间的高可用性和灾难恢复 我正在用MongoDB运行pod。获取错误 chown:更改“/data/db”的所有权:不允许操作 云任何机构,请建议我如何解决错误?(或) 在kubernetes集群中,是否有其他卷插件可以实现HA-DR chown:更改“/data/db”的所有权:不允许操作 您可以将mongo容器作为root启动,这样您就可以chown目录,或者如果映像禁止它(因为某些映像已经有USER mongo子句,禁止容器将权限升

我们是否可以使用nfs卷插件来维护kubernetes集群之间的高可用性和灾难恢复

我正在用MongoDB运行pod。获取错误

chown:更改“/data/db”的所有权:不允许操作

云任何机构,请建议我如何解决错误?(或)

在kubernetes集群中,是否有其他卷插件可以实现HA-DR

chown:更改“/data/db”的所有权:不允许操作

您可以将mongo容器作为
root
启动,这样您就可以
chown
目录,或者如果映像禁止它(因为某些映像已经有
USER mongo
子句,禁止容器将权限升级回
root
),然后是两件事中的一件:在
containers:
中使用
securityContext
节替换用户,或者使用
initContainer:
将目标文件夹预先更改为mongo UID:

方法1:

(这可能需要更改集群的配置,以允许此类内容出现在
PodSpec

方法#2(这是我在Elasticsearch图像中使用的方法):


/data/db是一个装入点,即使您没有在那里显式装入卷。数据将持久化到特定于pod的覆盖。 Kubernetes将所有卷装载为0755 root.root,而不管目录的初始权限是什么。 当然,mongo不能这么做

如果将卷装载到/data/db以下的某个位置,则会出现相同的错误


如果将卷装载到/data上,数据将不会存储在NFS上,因为/data/db上的装载点将改为写入覆盖。但是你不会再犯这种错误了。

使用格式化工具使你的文章更具可读性。使用
code blocking
查看代码、日志和错误文本,并使用粗体和斜体突出显示内容扫描我们使用nfs卷插件来维护kubernetes群集的高可用性和灾难恢复?您将需要非常小心地将NFS与“数据库”一起使用——我知道mongo只是粗略地定义为“数据库”,但我的观点是正确的。你会想快跑的™ 如果这适用于您,请不要将EFS用作NFS。如果我将RusaUser设置为0,您可以与我共享yaml文件吗。它表示必须在1000570000到1000579999之间。当我设置为1000570000时。initAndListen中的DBException,正在终止,“attr”:{“error”:“非法操作:试图在只读目录上创建锁文件:/data/db”}当命令CHOWN如上所示时,它说:启动容器进程导致“exec:\”sudo CHOWN-R mongodb:mongodb/data/db\”:stat sudo CHOWN-R mongodb:mongodb/data/db:没有这样的文件或目录“我认为这应该被标记为真正的答案
containers:
- name: mongo
  image: mongo:something
  securityContext:
    runAsUser: 0
initContainers:
- name: chmod-er
  image: busybox:latest
  command:
  - /bin/chown
  - -R
  - "1000"  # or whatever the mongo UID is, use string "1000" not 1000 due to yaml
  - /data/db
  volumeMounts:
  - name: mongo-data  # or whatever
    mountPath: /data/db
containers:
- name: mongo  # then run your container as before