【发布时间】:2018-04-12 04:23:18
【问题描述】:
我今天正在开发我的 Openshift 应用程序,并且没有更改与 mongodb 连接相关的任何内容,我开始收到以下消息:
/opt/app-root/src/node_modules/mongodb/lib/server.js:242
process.nextTick(function() { throw err; })
^
Error: connect EHOSTUNREACH 172.30.173.215:27017
at Object.exports._errnoException (util.js:1020:11)
at exports._exceptionWithHostPort (util.js:1043:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)
npm info lifecycle bolao_2018@0.1.0~start: Failed to exec start script
npm ERR! Linux 3.10.0-693.21.1.el7.x86_64
npm ERR! argv "/opt/rh/rh-nodejs6/root/usr/bin/node" "/opt/rh/rh-nodejs6/root/usr/bin/npm" "run" "-d" "start"
npm ERR! node v6.11.3
npm ERR! npm v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! bolao_2018@0.1.0 start: `node main`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bolao_2018@0.1.0 start script 'node main'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bolao_2018 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node main
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bolao_2018
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bolao_2018
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /opt/app-root/src/npm-debug.log
不同的是,我看到 mongodb 服务出于某种原因尝试了新的部署但失败了,所以我手动运行了一个。
我也注意到它尝试连接的IP地址是mongodb的集群IP,但是当前运行的pod的Node IP不同。
谁能帮我弄清楚是什么触发了连接中断?
谢谢
【问题讨论】:
-
您是在使用它的客户端配置中使用 MongoDB 的 IP 地址还是主机名。从技术上讲,
Service的 IP 地址不应更改,但通常最好使用Service的主机名,这是 MongoDB 实例的Service对象的名称。 -
我按照 Openshift 文档中的步骤创建了一个环境变量 MONGO_URL,其中包含:'mongodb://admin:secret@
:27017/sampledb'。我的代码中没有使用固定 IP。 -
不确定 - 但是,如果 mongodb 映像使用安全更新进行了修补,则相关的 OpenShift ImageStream 资源可能会自动安排新的部署(以在整个集群中分发更新)。如果当时部署存在持续问题,这可能会导致“mongodb 服务尝试新部署但失败”的情况。手动发布一个新的部署应该重新存储数据库并解决问题。
-
感谢您的想法,不幸的是它没有奏效。我尝试重新部署 mongo 和我的应用程序,它仍然显示相同的错误
-
这是哪个 Online Starter 集群?状态页面显示 us-east-1 存在一些问题,可能与此有关。您是否查看过 MongoDB pod 日志以验证它在启动时没有显示任何错误?您是否尝试过使用
oc rsh进入 MongoDB pod 并使用curl来查看是否可以从同一个 pod 访问 MongoDB 端口?
标签: node.js mongodb openshift openshift-3