mongoS容器内的mongo连接错误

问题描述 投票:1回答:1

我正在尝试在Kubernetes中编排一个MongoDB集群,与StatefulSets和Headless Services合作。我已经有一段时间试图弄清楚这有什么不对,却找不到我能用的东西。

在做我的研究时,我发现this repository,我克隆并适应用例。您可以找到其中一个清单(mongoS实例的清单)right here

然后我运行存储库中提供的generate.sh脚本,但是与gcloudpersistentVolume相关的所有内容都被评论,只留下statefulSet / Service产生进程。一切似乎都运行正常,但每当脚本到达块时

# Wait for the mongos to have started properly
echo "Waiting for the first mongos to come up (`date`)..."
echo " (IGNORE any reported not found & connection errors)"
echo -n "  "
until kubectl --v=0 exec mongos-router-0 -c mongos-container -- mongo --quiet --eval 'db.getMongo()'; do
    sleep 2
    echo -n "  "
done
echo "...first mongos is now running (`date`)"
echo

它只是无关紧要地给出了这个错误信息:

2019-03-11T14:02:03.531+0000 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:343:13
@(connect):1:21
exception: connect failed
command terminated with exit code 1

因此我试图直接从pod内部运行mongo,但同样的错误发生了。然后我只是尝试使用容器内的不同端口运行mongo,运行mongo --port 27018(也尝试过27019和27020),只是为了看看它给非暴露端口带来了哪种错误,而且似乎它给出了同样的错误。

我如何在端口27017上运行mongos的容器内运行mongo?看来我必须在运行mongod shell之前运行mongo,即使mongos已经启动了。这真的令人难以置信,我觉得我错过了什么。我只在mongos pods中有这个错误,而mongo-configdb和mongod-maindb似乎运行顺畅(并且在其中运行mongo shell不会产生任何错误。此外,当在其中一个中执行rs.status()时它工作正常精细)。

你可以找到一些mongos日志there

TL; DR我如何在端口27017上运行mongos的容器中运行mongo?

N.B。:我正在使用官方dockerhub存储库中的mongo:3.6图像。

mongodb kubernetes mongo-shell
1个回答
1
投票

我真的不明白为什么,但将运行端口从27017更改为27020工作正常。如果有人经过并可以解释如何,我很高兴听到他/她的解释为netstat -tunelp(以及ps aux),而在我的两个k8节点上点击端口27017并没有提供任何与端口27017相关的输出......

© www.soinside.com 2019 - 2024. All rights reserved.