我仅使用基本 mongo:3.6.4 官方 docker 映像创建了一个 Mongo 容器,并将其部署到我的 OpenShift OKD 集群,但无法使用集群外部的 Mongo 客户端连接到此 MongoDB 实例。
我可以在http://mongodb.my.domain访问 pod并成功获得“看起来您正试图在本机驱动程序端口上通过 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 集群上的某些代理设置有关。任何帮助,将不胜感激。