我一直在尝试在Kubernetes minikube上运行一个示例mongo项目但是对于我的生活我无法保持音量持续
任何人都有任何建议
kubectl create -f https://raw.githubusercontent.com/brianbruff/kubernetesPlayground/master/mongo.yaml
我注意到/ data文件夹似乎已挂载,如果我在节点上创建文件,它们会出现在单个pod中(反之亦然)
但由于某种原因,我对mongo / data / db文件没有好运,就像没有安装卷的db子文件夹一样
任何赞赏的建议
解决方案: 好吧这很尴尬...... 我的坚持测试是 创建一个数据库,然后查看它是否持久化
但mongo不保存/持久化数据库,除非其中有集合或文档!
是的,我觉得很尴尬......答案 0 :(得分:1)
原因是即使您在Pod中将/data
从主机挂载到/data
,容器中的/data/db
也会从其他位置挂载。
根据https://hub.docker.com/_/mongo/的建议,您应该在主机上将/data
挂载到容器上的/data/db
。
如果您转到minikube ssh
并查看为mongo db docker inspect <mongo-db-container>
容器装入的所有卷,您将看到以下两个Mounts(以及其他):
{
"Type": "volume",
"Name": "af5f765585b153526dd7eab75a9ee4b62a0fb59d3482a23dc97b8fd23267557d",
"Source": "/var/lib/docker/volumes/af5f765585b153526dd7eab75a9ee4b62a0fb59d3482a23dc97b8fd23267557d/_data",
"Destination": "/data/db",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
{
"Type": "bind",
"Source": "/data",
"Destination": "/data",
"Mode": "rslave",
"RW": true,
"Propagation": "rslave"
},
答案 1 :(得分:1)
我也面临着同样的问题。但是在进行一些小的更改之后,它对我来说效果很好。
volumeMounts:
- name: <pvc-name>
mountPath: "/data/db/"