gpt4 book ai didi

mongodb - 为什么在尝试连接到运行简单 mongo 容器的 OKD pod 时出现 "message len 1347703880 is invalid. Min 16 Max: 48000000"错误?

转载 作者:行者123 更新时间:2023-12-02 19:03:58 25 4
gpt4 key购买 nike

我只使用基本 mongo:3.6.4 官方 docker 镜像创建了一个 Mongo 容器,并将其部署到我的 OpenShift OKD 集群,但无法使用集群外部的 Mongo 客户端连接到此 MongoDB 实例。

我可以通过 http://mongodb.my.domain 访问该 pod并成功获得“看起来您正试图在 native 驱动程序端口上通过 HTTP 访问 MongoDB”。信息。

在 pod 上使用终端时,我可以使用以下命令成功登录:
mongo "mongodb://mongoadmin:pass@localhost"--authenticationDatabase admin

但是当尝试从 OKD 外部连接时,连接失败。

我的客户需要通过代理才能访问 OKD pod,并且我确实有一个 .der 证书文件,但不确定这是否与问题有关。

我尝试过的一些命令:

mongo "mongodb://mongoadmin:pass@mongodb.my.domain:80"--authenticationDatabase admin

mongo --ssl "mongodb://mongoadmin:pass@mongodb.my.domain:80"--authenticationDatabase admin

我希望能够成功连接,但收到此错误消息:

MongoDB shell version v3.4.20
connecting to: mongodb://mongoadmin:pass@mongodb.my.domain:80
2019-05-15T11:32:25.514+0100 I NETWORK [thread1] recv(): message len 1347703880 is invalid. Min 16 Max: 48000000
2019-05-15T11:32:25.514+0100 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host 'mongodb.my.domain:80' :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed

我不确定这是否与我使用 MongoDB 客户端的方式或我的 OKD 集群上的某些代理设置有关。任何帮助,将不胜感激。

最佳答案

这里的问题是外部 OpenShift 路由不擅长处理数据库连接。当您尝试通过路由连接到 Mongo pod 时,路由将接受连接并将您的连接传输到 Mongo 服务。我相信这种传输将连接包装在 HTTP 包装器中,Mongo 不喜欢处理这种包装器。 OKD documentation强调基于路径的路由流量应该是基于 HTTP 的,这将导致连接失败。

当您尝试连接到 MongoDB 数据库时,您可以看到这方面的证据,它会返回“看起来您正尝试在 native 驱动程序端口上通过 HTTP 访问 MongoDB”。到浏览器。用户relief.malone 对此进行了解释,并在their answer to this question 中提出了一些解决方案/变通方法。 .

为了添加到relief.malone 的答案中,我建议您从MongoDB pod 转发到您的本地机器进行开发/调试。在生产中,您可以将应用程序部署到 OKD,该应用程序通过其内部 DNS 名称引用 MongoDB 服务,如下所示:mongodb.project_namespace.svc:27017 .这样,您将避免路由干扰连接。

关于端口转发的 Openshift OKD 文档 isn't that informative , 但是,因为 oc运行 kubectl引擎盖下的命令,您可以阅读 this Kubernetes guide获取更多信息

关于mongodb - 为什么在尝试连接到运行简单 mongo 容器的 OKD pod 时出现 "message len 1347703880 is invalid. Min 16 Max: 48000000"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com