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容器的内存限制。

4. pod运行过程中出现了OOMKilled事件,即pod运行过程内存需求持续增加,超过为pod设置的内存大小时,pod会被重启。
解决方法:将pod的内存配置项的值改大点。
posted @ 2021-07-01 23:56  温茶又折花  阅读(4283)  评论(0编辑  收藏  举报