Mongodb mongoS容器内的mongo连接错误
我正试图在Kubernetes内部协调MongoDB集群,使用状态集和无头服务。已经有一段时间了,我试图找出这里面的错误,但是找不到任何我可以使用的东西 在进行研究的过程中,我发现了我克隆并适应于用例的内容。您可以找到其中一个清单(mongoS实例的清单) 然后,我运行存储库中附带的Mongodb mongoS容器内的mongo连接错误,mongodb,kubernetes,mongo-shell,Mongodb,Kubernetes,Mongo Shell,我正试图在Kubernetes内部协调MongoDB集群,使用状态集和无头服务。已经有一段时间了,我试图找出这里面的错误,但是找不到任何我可以使用的东西 在进行研究的过程中,我发现了我克隆并适应于用例的内容。您可以找到其中一个清单(mongoS实例的清单) 然后,我运行存储库中附带的generate.sh脚本,但是对与gcloud或persistentVolume相关的所有内容都进行了注释,只留下statefulSet/服务生成过程。一切似乎都很好,但只要脚本到达块 # Wait for the
generate.sh
脚本,但是对与gcloud
或persistentVolume
相关的所有内容都进行了注释,只留下statefulSet
/服务
生成过程。一切似乎都很好,但只要脚本到达块
# 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?在运行mongo
shell之前,我似乎必须先运行mongod
,即使mongos
已经启动。这真是令人难以置信,我觉得我错过了什么。我只在mongos Pod中出现了这个错误,而mongo configdb和mongod maindb似乎运行得很顺利(在它们内部运行mongo shell不会产生任何错误。此外,在其中一个内执行rs.status()
时,它工作得很好)
您可以找到一些mongos
日志
TL;DR
如何在27017端口运行mongos的容器中运行mongo
N.B.:我正在使用官方dockerhub存储库中的图像mongo:3.6。我真的不明白为什么,但将运行端口从27017更改为27020效果很好。如果有人路过,并能解释如何操作,我很高兴听到他/她的解释为
netstat-tunelp
(以及ps aux
),而在我的两个k8s节点上对端口27017进行grepping不会给出任何与端口27017相关的输出