2

我将我的项目(node.js + mongodb)从 Openshift v2 切换到 v3。此外,我将 v3 的入门版本用于我的项目,并将 Web 控制台用于所有配置。

部署导致失败状态并出现以下错误:

--> Scaling tmo-9 to 1
error: update acceptor rejected tmo-9: pods for rc 'tmoolympus/tmo-9' took longer than 600 seconds to become available


Pod 的日志:

Environment: 
    DEV_MODE=false
    NODE_ENV=production
    DEBUG_PORT=5858
Launching via npm...
npm info it worked if it ends with ok
npm info using npm@3.10.9
npm info using node@v6.11.3
npm info lifecycle TMOOLYMPUS@1.0.0~prestart: TMOOLYMPUS@1.0.0
npm info lifecycle TMOOLYMPUS@1.0.0~start: TMOOLYMPUS@1.0.0

> TMOOLYMPUS@1.0.0 start /opt/app-root/src
> node server.js

production
trying to connect..
after connect..
Initalizing db..
Checking roles..
in counter gen seq
in counter gen seq
Checking news category..
in counter gen seq
Fnished initalizing db..
tmoolympus is running, listening on 127.0.0.1:8080
all dirs donee
in counter gen seq
in counter gen seq
Checking admin user
in counter gen seq
[ { _id: 5a900dc3b52e58ddd9a57cac, roleid: 1, __v: 0 },
  { _id: 5a900dc3b52e58ddd9a57caf, roleid: 3, __v: 0 },
  { _id: 5a900dc3b52e58ddd9a57cb0, roleid: 4, __v: 0 } ]
Checking tmo team..
in counter gen seq
npm info lifecycle TMOOLYMPUS@1.0.0~poststart: TMOOLYMPUS@1.0.0
npm info ok 


第二个日志显示服务器已启动并正在运行,但是应用程序不可用,它会在停止之前尝试重新创建部署几次 - The container nodejs-mongo-persistent is crashing frequently. It must wait before it will be restarted again.

问题:是我的问题还是 Openshift v3 的问题?

4

1 回答 1

2

有2个问题正在发生。首先,我假设您部署了nodejs-mongo-persistent模板,该模板定义了 areadinessProbelivenessProbe查找/pagecountURL,并且在找到该页面之前不会认为您的 pod 健康。我建议要么删除这些探测器,要么调整它们以查看代码库中的 URL。

其次,您的应用程序似乎正在侦听127.0.0.1哪些不允许您的应用程序可从外部访问。鉴于这是基于 v2,我建议在 v3 中创建一个环境变量OPENSHIFT_NODEJS_IP,并将其设置为0.0.0.0. 在 v3 中不再需要这些环境变量,因为您可以将任何应用程序设置为0.0.0.0并使其可访问(使用适当的路由)。

于 2018-02-23T19:41:45.880 回答