首页 文章

在哪种情况下kubernates pods可以停止工作?

提问于
浏览 353
1

用JAVA spring-boot编写的API部署在带有两个pod的K8s中,并且API已成功运行3周 . 但是,最后一天它停止工作并生成503服务器不可用 .

K8s管理员告诉我们,Pods整天都在重建多次 . 虽然它从Drone重新启动我的构建后开始工作,但我想知道

  • 哪种情况可以使Pod无法正常工作?

  • 为什么K8S会一次又一次地重建Pod?

  • 如果是内存问题,因为我在JAVA中开发了这个API,那么't JAVA'的垃圾收集工作呢?

此致,Hearaman .

1 回答

  • 2

    哪种情况可以使Pod无法正常工作?

    • 内存限制,请求限制,一般配额

    • You Pod具有Burstable的QoS(K8S),这意味着它可能会让其他pod活不下去

    • 节点/工作人员被关闭或进行更新/维护

    • 你的java堆正在导致应用程序失败(通常就是这种情况)

    • 活动探测问题

    为什么K8S会一次又一次地重建Pod?

    • 使其再次可用(您可能有准备问题)或某些卷问题(取决于)

    如果是内存问题,因为我在JAVA中开发了这个API,JAVA的垃圾收集工作不在这里

    • 如果您使用的是java 8,则可能需要在启动应用程序时为堆大小添加一些控件,如下所示:

    -XX:PrintFlagsFinal -XX:UnlockExperimentalVMOptions -XX:UseCGroupMemoryLimitForHeap

    这是java 8的功能,因此您可能需要检查java文档

    希望这可以帮助

相关问题