Error: update acceptor rejected

Error: update acceptor rejected

我将我的项目 (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的问题?

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

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