pod自动重启的可能原因

1. 在没有给jvm指定内存大小的情况下,机器物理内存很大时,jvm默认占用的内存Xms超出了k8s分配给pod的内存,导致pod内存溢出,从而k8s不断重启pod。
2. 运行过程中,jvm不断申请内存直到最大heap内存Xmx,Xmx超出了k8s分配给pod的内存,从而k8s自动重启pod。
解决方法:在启动的脚本中设置jvm内存-Xms、-Xmx参数
例如:java -Xms1024m -Xmx1024m -jar app.jar

3. 设置了docker容器的内存限制,制作的镜像未对JVM进行配置,那么 JVM 会默认设置堆栈的大小。这样,当jvm占用内存超过docker容器限制时,就会出现container 被docker killed情况。
解决方法:一样是设置jvm内存-Xms、-Xmx参数,注意要小于docker容器的内存限制。

本文作者:温茶又折花

本文链接: https://www.cnblogs.com/dyfblogs/p/14961485.html

转载文章请注明作者和出处,谢谢!
原文地址:https://www.cnblogs.com/dyfblogs/p/14961485.html