【问题标题】:Kubernetes and Mongo VolumeKubernetes 和 Mongo 卷
【发布时间】:2018-09-24 08:02:41
【问题描述】:

我一直在尝试让一个示例 mongo 项目在 Kubernetes minikube 上运行,但对于我来说,我无法让音量持续存在

大家有什么建议

kubectl create -f https://raw.githubusercontent.com/brianbruff/kubernetesPlayground/master/mongo.yaml

我注意到 /data 文件夹似乎已挂载,如果我在节点上创建文件,它们会出现在单个 pod 中(反之亦然)

但由于某种原因,我对 mongo /data/db 文件没有运气,就好像未安装卷的 db 子文件夹

任何建议表示赞赏

解决方案: 好吧,这很尴尬…… 我的持久性测试是 创建一个db,然后看看它是否被持久化

但 mongo 不会保存/持久化数据库,除非其中有集合或文档!

是的,我觉得很尴尬......

【问题讨论】:

    标签: mongodb volume kubernetes


    【解决方案1】:

    原因是即使您将 /data 从主机安装到 Pod 中的 /data,容器中的 /data/db 也是从其他地方安装的。

    按照https://hub.docker.com/_/mongo/ 的建议,您应该将主机上的/data 挂载到容器上的/data/db

    如果您转到 minikube ssh 并查看为 mongo db docker inspect <mongo-db-container> 容器安装的所有卷,您将看到以下两个安装(以及其他):

            {
                "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"
            },
    

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题。但是做了一点小改动后,对我来说效果很好。

      volumeMounts:
              - name: <pvc-name>
                mountPath: "/data/db/"
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-31
        • 2019-03-31
        • 2022-08-17
        • 2021-10-26
        • 1970-01-01
        • 2021-08-17
        相关资源
        最近更新 更多