如何确定部署在Kubernetes上的Spring Boot应用程序中的CrashLoopBackOff错误的原因

我有一个Spring Boot应用程序,部署在Kubernetes上的Docker容器上。 该应用程序运行良好一段时间(小时),但在某个时刻,它开始像疯了重启显示CrashLoopBackOff错误状态。

这是我从死荚得到的信息:

Port: 8080/TCP State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Error Exit Code: 137 Started: Fri, 11 Aug 2017 10:15:03 +0200 Finished: Fri, 11 Aug 2017 10:16:22 +0200 Ready: False Restart Count: 7 ... Volume Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-bhk8f (ro) Environment Variables: JAVA_OPTS: -Xms512m -Xmx1792m Conditions: Type Status Initialized True Ready False PodScheduled True ... QoS Class: BestEffort Tolerations: <none> No events. 

有什么方法可以获得关于崩溃原因的更多详细信息吗?

137错误代码是内存不足的错误吗? 我一直把Java进程的内存从-Xmx768m增加到1792m,但是错误不断出现。 难道是别的吗?

一个奇怪的事实:我需要找出应用程序如何运行良好,几小时后,pod被杀死,然后每执行一次,每一次重启都会被终止。

kubectl logs podName containerName将为您提供容器日志,该日志应该提供有关错误原因的附加信息。