【问题标题】:Openshift command terminated with non-zero exit code: Error executing in Docker Container: 137Openshift 命令以非零退出代码终止:在 Docker 容器中执行错误:137
【发布时间】:2019-08-01 03:14:02
【问题描述】:

我在 openshift 上运行基于 opencpu 的映像,每次 pod 启动时,仅几秒钟后,它就会崩溃并出现错误:

command terminated with non-zero exit code: Error executing in Docker Container: 137

事件选项卡仅显示以下三个事件,终端日志也不显示任何内容。

Back-off restarting the failed container
Pod sandbox changed, it will be killed and re-created.
Killing container with id docker://opencpu-test-temp:Need to kill Pod

我真的不知道为什么容器每隔几秒钟就会重新启动。此图像在本地运行良好。

有没有人告诉我如何调试这个问题?

【问题讨论】:

  • 查看oc debug 命令。它允许您运行具有相同部署配置和映像的调试 pod,但它不会启动应用程序。然后,您可以从提供的 shell 手动运行显示的启动命令,看看会发生什么。如下所述,内存是一个很好的候选对象。

标签: docker openshift opencpu


【解决方案1】:

错误 137 通常与 docker 上下文中的内存相关。

实际错误来自 docker 容器中隔离的进程。这意味着无法使用 SIGKILL 终止进程。 Source

来自bobcares.com

Docker 中的错误 137 表示容器被“杀死” ‘oom-killer’(内存不足)。当没有足够的时候会发生这种情况 容器中用于运行进程的内存。

‘OOM 杀手’是一个主动的进程,它会跳进来拯救系统 当它的内存级别太低时,通过杀死资源滥用 为系统释放内存的进程。

尝试检查容器的内存配置?以及正在启动 pod 的主机上的可用内存? opencpu 容器日志没有吗?

检查配置文件/etc/opencpu/server.conf中的设置rlimit.as,在图像内。这个限制是你的 opencpu 实例的“每个请求”内存限制(我意识到你的问题是在启动时,所以这可能不太可能是这种情况)。

【讨论】:

  • 确实是 openshift 内存问题。一旦我添加了资源请求以请求更多内存和 CPU,一切正常。谢谢
  • 很高兴能在这方面为您提供帮助。这是否意味着您可以接受答案?
猜你喜欢
  • 2019-09-15
  • 1970-01-01
  • 2020-04-07
  • 2018-07-21
  • 1970-01-01
  • 2020-05-24
  • 2018-06-19
  • 2021-04-13
  • 2020-04-30
相关资源
最近更新 更多