用于生产的独立 MongoDB 安装

问题描述

我想将MongoDB部署到2个节点的Kubernetes集群,以后没有机会再添加节点了。

我想独立部署 MongoDB,因为两个节点都可以通过 NFS 访问相同的磁盘空间,而且我对复制或高可用性没有要求。但是,MongoDB 文档中明确指出独立部署不适合生产环境。

MongoDB Deploy Standalone

您可以部署一个独立的 MongoDB 实例供 Cloud Manager 管理。使用独立实例进行测试和开发。不要将这些部署用于生产系统,因为它们缺乏复制和高可用性。

我可以面对什么样的缺点?我应该使用仲裁器实例部署为副本集吗?如果是,为什么?

解决方法

当然,您可以为生产部署独立的 MongoDB。但是,如果此节点出现故障,则您的应用程序将不再可用。如果您对可用性没有任何要求,请选择独立的 MongoDB。

但是,运行 2 个访问同一物理磁盘(即 dbPath)的 MongoDB 服务将不起作用。每个 MongoDB 实例都需要有一个专用的数据文件夹。

就您而言,我建议您使用 Replica Set。来自一个节点的所有数据都将复制到另一个节点。如果一个节点出现故障,则应用程序进入“只读/只读”模式。

您可以在主节点上部署一个仲裁器实例。如果辅助节点出现故障,则应用程序仍然完全可用。

,

始终建议为生产部署为 replicaSet ,但是如果您作为独立部署并且您有 2x kubernetes 节点,kubernetes 可以确保始终有 1x 运行实例附加到任何可用节点中的 NFS 存储,但是风险在于,当存储上的数据损坏时,您将无法从哪里复制,除非您经常进行备份并且您不在乎是否错过了一些最近插入的数据...