Java Kubernetes是否应该在内存不足时重新启动我的JVM应用程序?

Java Kubernetes是否应该在内存不足时重新启动我的JVM应用程序?,java,memory,jvm,kubernetes,Java,Memory,Jvm,Kubernetes,我们在Kubernetes上部署了一个应用程序。其中一个服务是在JVM中运行的应用程序 我们的应用程序有故障,占用了大量内存。我们正在达到复制控制器中设置的限制,这使得它重新启动pod 为此使用复制控制器是一个好主意吗?或者限制JVM上的内存(将其设置为低于复制控制器限制的值)并使用pod中的其他值来重新启动应用程序是更好的主意 如果JVM因内存不足异常而停止,我可以使用JVM编写的内存转储。现在我不知道是什么占据了我的记忆 谢谢你的回复 事实上,这不是部署/复制控制器的责任。重启由Pod it

我们在Kubernetes上部署了一个应用程序。其中一个服务是在JVM中运行的应用程序

我们的应用程序有故障,占用了大量内存。我们正在达到复制控制器中设置的限制,这使得它重新启动pod

为此使用复制控制器是一个好主意吗?或者限制JVM上的内存(将其设置为低于复制控制器限制的值)并使用pod中的其他值来重新启动应用程序是更好的主意

如果JVM因内存不足异常而停止,我可以使用JVM编写的内存转储。现在我不知道是什么占据了我的记忆


谢谢你的回复

事实上,这不是部署/复制控制器的责任。重启由Pod it自行处理。至于处理内存,这不是一个小问题,你应该在两个级别上控制它(比如堆大小等),这样你的应用程序就不会达到限制,但是如果它真的消失了,pod上的限制将处理它,这是完全可以的(特别是如果你运行多个pod,那么你就有HA)

这里的问题是,要很好地调整内存限制有点棘手,通过尝试和错误+监控吊舱/容器指标(普罗米修斯/格拉法纳拯救:)可能可以做得最好