Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb mongoS容器内的mongo连接错误_Mongodb_Kubernetes_Mongo Shell - Fatal编程技术网

Mongodb mongoS容器内的mongo连接错误

Mongodb mongoS容器内的mongo连接错误,mongodb,kubernetes,mongo-shell,Mongodb,Kubernetes,Mongo Shell,我正试图在Kubernetes内部协调MongoDB集群,使用状态集和无头服务。已经有一段时间了,我试图找出这里面的错误,但是找不到任何我可以使用的东西 在进行研究的过程中,我发现了我克隆并适应于用例的内容。您可以找到其中一个清单(mongoS实例的清单) 然后,我运行存储库中附带的generate.sh脚本,但是对与gcloud或persistentVolume相关的所有内容都进行了注释,只留下statefulSet/服务生成过程。一切似乎都很好,但只要脚本到达块 # Wait for the

我正试图在Kubernetes内部协调MongoDB集群,使用状态集和无头服务。已经有一段时间了,我试图找出这里面的错误,但是找不到任何我可以使用的东西

在进行研究的过程中,我发现了我克隆并适应于用例的内容。您可以找到其中一个清单(mongoS实例的清单)

然后,我运行存储库中附带的
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相关的输出