【问题标题】:What is CrashLoopBackOff status for openshift pods?openshift pod 的 CrashLoopBackOff 状态是什么?
【发布时间】:2016-02-29 22:25:56
【问题描述】:

我从一个以 openshift 起源运行的 pod 中看到了这种状态的例子不止一个。在本例中,它是 cdi camel 示例的快速入门。我能够在本地成功构建和运行它(非 openshift),但是当我尝试在本地 openshift 上部署(使用mvn -Pf8-local-deploy)时,我得到了该特定示例的输出(为了相关性而剪掉了):-

[vagrant@vagrant camel]$ oc get pods NAME READY STATUS RESTARTS AGE cdi-camel-z4czs 0/1 CrashLoopBackOff 4 2m

日志尾部如下:-

  Error occurred during initialization of VM
  Error opening zip file or JAR manifest missing : agents/jolokia.jar
  agent library failed to init: instrument

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: apache-camel cdi openshift-origin fabric8


    【解决方案1】:

    如果 pod 的状态变为 CrashLoopBackOff,通常表示容器内的应用程序无法正常启动,导致容器直接退出。

    如果您在 pod 名称上使用 oc logs,您可能看不到任何有用的信息,因为它会捕捉到启动它的最新尝试正在做什么,并且可能会丢失消息。

    您应该改为向 oc logs 提供 --previous-p 选项以及 pod 名称。这将向您显示上次尝试启动容器的完整日志。

    如果这是您正在使用的任意 Docker 映像,可能会发生并导致容器无法启动的常见问题是需要以 root 用户身份运行的应用程序映像。因为以 root 身份在容器内运行应用程序仍然存在风险,所以 OpenShift 默认不允许您这样做,而是作为任意分配的用户 ID 运行。应用程序映像的设计可能没有考虑到这种可能性,因此失败。

    所以尝试获取这些日志消息并查看问题所在。

    【讨论】:

    • 为了确保我们在同一页面上,我正在尝试从here 运行一个罐装示例,预计它可以在这个罐装(流浪)openshift 盒子上开箱即用。我只是在跟进他们的“入门”示例here。但他们不工作。这是我第一次尝试这个例子,所以没有任何以前运行的版本。
    • 有什么办法可以让 Pod 尽快停止重新启动? IE,当它在CrashLoopBackOff 中时,告诉它在 3 次重新启动而不是 5 次后中止?
    • 你没有提到如何让 Pod 停止 crashback 循环,以便我可以调试操作系统文件。否则,您的服务器将不断被破坏,从而无法进行调试。
    【解决方案2】:

    临时解决方法 -> https://github.com/fabric8io/ipaas-quickstarts/issues/1157

    基本上需要删除src/main/hawt-app目录。

    【讨论】:

    • 但是如何让它停止破坏 docker 实例呢?或者如何连接到 Openshift 服务器
    猜你喜欢
    • 2020-05-23
    • 2020-09-01
    • 1970-01-01
    • 2019-04-04
    • 2023-03-16
    • 2020-01-09
    • 2017-04-07
    • 2022-06-30
    • 1970-01-01
    相关资源
    最近更新 更多