Openshift 3:应用程序不会部署,除非 pod 手动缩放到 0 然后回到 1

Openshift 3: App will not deploy unless pod manually scaled to 0 then back to 1

我可以在我的 Openshift 3 Starter 应用程序上部署新构建的唯一方法是,如果我手动将现有 运行 pod 缩小到 0,部署我的最新构建,然后将 pod 缩小回 1 .

如果我不手动将 pod 缩小到 0,部署过程会导致内存不足错误或超时。当系统在新构建后自动部署时,日志显示它将 pod 缩小到 0,部署,然后放大到 1,这就是错误发生的时间。

我的应用在美国西部 2.

这只是 Openshift 3 的错误还是我构建和部署不正确?

这可能意味着您的内存资源已达到极限。发生这种情况是因为默认部署策略是滚动部署,这意味着在旧实例停止之前需要有足够的可用内存来启动新实例。

您需要做的是将部署配置切换为使用 'Recreate' 部署策略而不是 'Rolling'。使用此策略,现有实例将在启动新实例之前关闭,因此您可以在内存配额内工作。

您可以通过在 Web 控制台中编辑部署配置或 运行 命令更改为 'Recreate':

oc patch dc/yourappname --patch '{"spec":{"strategy":{"type":"Recreate"}}}'