【问题标题】:Mongodb EHOSTUNREACH on Openshift Online 3 starterOpenshift Online 3 启动器上的 Mongodb EHOSTUNREACH
【发布时间】: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


【解决方案1】:

在给定的Project 范围内,指向主机名“mongodb”的请求应路由到名为“mongodb”的 Kubernetes Service(如果可用)。

要调试此连接问题:

  1. 尝试使用 OpenShift Web 控制台在前端容器中打开实时终端。前端容器必须与数据库服务在同一项目范围内
  2. 键入env 列出前端可用的环境变量。如果这个容器是在创建“mongodb”服务之后启动的,那么配置字符串应该在环境中可见
  3. 从实时终端运行curl $MONGODB_SERVICE_HOST:$MONGODB_SERVICE_PORT 以验证mongodb 服务的可用性

【讨论】:

  • Failed to connect to <same IP address and port of the mongo service> : no route to hostcurl 命令的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 2017-11-02
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多