小编Mik*_*esi的帖子

无法连接到 Kubernetes 中的 Mongodb pod(连接被拒绝)

我有一些远程虚拟机,我想在其中部署一些 Mongodb 实例,然后使它们可以远程访问,但由于某种原因,我似乎无法完成这项工作。

这些是我采取的步骤:

  • 我启动了一个在远程虚拟机上运行 Mongodb 的 Kubernetes pod。
  • 然后我通过 Kubernetes NodePort 服务公开它。
  • 然后我尝试从笔记本电脑连接到 Mongodb 实例,但没有成功。

这是我用来尝试连接的命令:

$ mongo host:NodePort   
Run Code Online (Sandbox Code Playgroud)

(“主机”是指 Kubernetes master)。

这是它的输出:

MongoDB shell version v4.0.3
connecting to: mongodb://host:NodePort/test
2018-10-24T21:43:41.462+0200 E QUERY    [js] Error: couldn't connect to server host:NodePort, connection attempt failed: SocketException:
Error connecting to host:NodePort :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

从 Kubernetes master 处,我确保 Mongodb pod 正在运行。然后我在容器中运行 shell 并检查 Mongodb 服务器是否正常工作。此外,我之前通过在 yaml 描述中指定“--bind-ip=0.0.0.0”选项来授予对 Mongodb 服务器的远程访问权限。为了确保已应用此选项,我从同一个 shell 在 Mongodb 实例内运行此命令: …

remote-connection mongodb kubernetes kubernetes-service

6
推荐指数
1
解决办法
1万
查看次数

Mongodb dump(过滤文档和字段)

我想打一个局部MongoDB数据库的转储(部分为,我需要过滤掉一些文件,有些领域)。然后,此转储将导入到另一台服务器上。

我不能使用mongodump实用程序,因为它不允许过滤字段。
我可以使用mongoexport实用程序,因为它允许过滤文档和字段。但是,文档指出mongoexport只能输出 JSON 文件并且:

不能可靠地保留所有丰富的 BSON 数据类型,因为 JSON 只能表示 BSON 支持的类型的一个子集。

  1. 我觉得这个说法有点含糊,我不完全理解。那么,如果我用 JSON 转储我的数据库会发生什么?我要冒什么风险?我会冒丢失某些文件的风险吗?
  2. 如果您认为我绝对应该避免在生产中使用mongoexport,我可以编写自己的 Nodejs 应用程序来进行过滤并在 BSON 中输出转储吗?或者那是不可能的?

dump filter mongodb bson mongoexport

5
推荐指数
1
解决办法
2369
查看次数