Kubernates Pod在哪种情况下可以停止工作?

时间:2018-12-10 09:53:55

标签: spring-boot kubernetes

用JAVA spring-boot编写的API已在具有两个Pod的K8s中部署,并且API运行已经三周了。但是,最后一天它停止工作,并产生503服务器不可用。

K8s管理员告诉我们,Pods一整天都在重新创建多个时间。尽管从Drone重新启动构建后它开始工作,但我想知道

  1. 哪种情况会使Pod无法正常工作?
  2. 为什么K8S一次又一次地重新创建Pod?
  3. 如果是内存问题,就像我在JAVA中开发此API一样,那么JAVA的垃圾回收在这里行不通吗?

关于, 希拉曼。

1 个答案:

答案 0 :(得分:2)

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

  1. 内存限制,请求限制,一般配额
  2. 您的Pod具有可突发的QoS(K8S),这意味着它可以 藏起来让其他豆荚活着
  3. 节点/工人停机或无法进行更新/维护
  4. 您是Java Heap导致应用程序被销毁(通常是 情况)
  5. 活力探测问题

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

  • 使其再次可用(您可能有就绪问题),或者 一些数量问题(取决于情况)

如果是内存问题,正如我在JAVA中开发的API一样,这里不是Java的垃圾回收工作

  • 如果您使用的是Java 8,则可能要在 启动应用程序时的堆大小如下:

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

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

希望这会有所帮助