java - Kubernetes pod (Java) 以 137 TERMINATED 重新启动

标签 java kubernetes restart

我们在具有 3 个 master 和 3 个 worker 的本地部署上运行 Kubernetes (1.18) 和 Docker 1.19 和 systemd。操作系统是 RedHat 7.8。
Container 是一个基于 Java 13 的 Spring Boot 应用程序(使用基础镜像作为 openjdk:13-alpine),以下是内存设置。
荚:

  • 内存 - 最小 448M 和最大 2500M
  • cpu - 最小 0.1

  • 容器:
  • Xms: 256M, Xmx: 512M

  • 当流量发送时间较长时,容器突然重启;在 Prometheus 中,我可以看到 Pod 内存低于最大级别(仅 1300MB 左右)。
    在 pod 事件中,我可以看到 liveness 和 readiness 探测的警告;并且 pods 重新启动。
    State:          Running
      Started:      Sun, 23 Aug 2020 15:39:13 +0530
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Sun, 23 Aug 2020 15:23:03 +0530
      Finished:     Sun, 23 Aug 2020 15:39:12 +0530
    Ready:          True
    Restart Count:  14
    
  • 我可以引用哪些日志来找出触发重启的原因?应用程序日志根本没有帮助;在运行应用程序的最后一个日志之后;我可以将日志的起始行视为下一行。
  • 解决此问题的推荐方法是什么?

  • 谢谢

    最佳答案

    137 表示 128 + 9 (所以它被 kill -9 杀死)
    https://tldp.org/LDP/abs/html/exitcodes.html
    查看 pod 和应用程序日志。
    也许容器需要更多资源才能启动?

    关于java - Kubernetes pod (Java) 以 137 TERMINATED 重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63556842/

    相关文章:

    java - 第 3 方 Jar 退出我的程序?

    go - K8S 通过 go API 读取 config map

    c++ - 如何在不关闭正在运行的程序的情况下平滑重启c++程序?

    javascript - 如何召回或重启 MathJax?

    ios - 即使在 sleep 或重启后,仍会在后台持续运行 IOS 应用程序

    java - 流列表、映射和设置为新列表

    java - 如何打破对接口(interface)的强依赖?

    java - 使用 InMobi Ad SDK 时获取 InputStream 的问题 - Android

    docker - 如何将docker容器ip暴露给外网?

    service - 在使用Pod之前是否有kubernetes配置参数(服务,rc或其他)要延迟