用JAVA spring-boot编写的API部署在带有两个pod的K8s中,并且API已成功运行3周 . 但是,最后一天它停止工作并生成503服务器不可用 .
K8s管理员告诉我们,Pods整天都在重建多次 . 虽然它从Drone重新启动我的构建后开始工作,但我想知道
哪种情况可以使Pod无法正常工作?
为什么K8S会一次又一次地重建Pod?
如果是内存问题,因为我在JAVA中开发了这个API,那么't JAVA'的垃圾收集工作呢?
此致,Hearaman .
内存限制,请求限制,一般配额
You Pod具有Burstable的QoS(K8S),这意味着它可能会让其他pod活不下去
节点/工作人员被关闭或进行更新/维护
你的java堆正在导致应用程序失败(通常就是这种情况)
活动探测问题
如果是内存问题,因为我在JAVA中开发了这个API,JAVA的垃圾收集工作不在这里
-XX:PrintFlagsFinal -XX:UnlockExperimentalVMOptions -XX:UseCGroupMemoryLimitForHeap
这是java 8的功能,因此您可能需要检查java文档
希望这可以帮助
1 回答
哪种情况可以使Pod无法正常工作?
内存限制,请求限制,一般配额
You Pod具有Burstable的QoS(K8S),这意味着它可能会让其他pod活不下去
节点/工作人员被关闭或进行更新/维护
你的java堆正在导致应用程序失败(通常就是这种情况)
活动探测问题
为什么K8S会一次又一次地重建Pod?
如果是内存问题,因为我在JAVA中开发了这个API,JAVA的垃圾收集工作不在这里
-XX:PrintFlagsFinal -XX:UnlockExperimentalVMOptions -XX:UseCGroupMemoryLimitForHeap
这是java 8的功能,因此您可能需要检查java文档
希望这可以帮助