Kubernetes chown:更改'的所有权/数据/db';:不允许操作
我们是否可以使用nfs卷插件来维护kubernetes集群之间的高可用性和灾难恢复 我正在用MongoDB运行pod。获取错误 chown:更改“/data/db”的所有权:不允许操作 云任何机构,请建议我如何解决错误?(或) 在kubernetes集群中,是否有其他卷插件可以实现HA-DR chown:更改“/data/db”的所有权:不允许操作 您可以将mongo容器作为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子句,禁止容器将权限升
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