Mongo连接误差Mongos容器内部



我正在尝试在Kubernetes内部协调一个MongoDB群集,并使用Statefulssets和无头服务。我试图弄清楚这有什么问题,但找不到我可以使用的东西。

进行研究时,我发现了我克隆并适应用例的存储库。您可以在这里找到其中一种清单(用于蒙古实例的清单)。

然后,我在存储库中运行运行的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

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

我如何在端口27017上带有运行的蒙古斯的容器内运行mongo?似乎我必须在运行mongo壳之前运行mongod,即使mongos已经启动。这确实令人难以置信,我觉得我缺少一些东西。我只有在蒙哥多豆荚内有这个错误,而蒙古configdb和mongod-maindb似乎正在顺利运行(并且在其中运行蒙哥壳没有任何错误。此外,在其中之一进行rs.status()时很好)。

您可以在那里找到一些mongos日志。

tl; dr 我如何在端口27017上使用运行的蒙古斯的容器内运行mongo?

n.b。:我正在使用image mongo:3.6 来自官方Dockerhub存储库。

我不太了解为什么,但是将运行端口从27017更改为27020都很好。如果有人经过并可以解释如何,我很高兴听到他/她的解释为netstat -tunelp(以及ps aux),而我的两个K8S节点上的Greppper端口27017则没有给出与端口27017相关的任何输出...

最新更新