如何设置 liveness & readiness 探针,让 Spring Boot 应用程序在高负载下存活而不是被 kubernetes 杀死并重新启动?

时间:2021-02-28 17:38:31

标签: kubernetes readinessprobe livenessprobe

开发一个 Spring Boot 应用程序(带执行器),有时应用程序负载过高(或“忙”,线程池耗尽,请求排长队)以至于 liveness probe 可以很容易地决定重新启动它(而不是留在队列中)。

我想以某种方式让应用程序自行管理它而不是重新启动 pod。

阅读后: Specify to Kubernetes when a Pod is "busy" 我意识到活跃度和就绪度探测可以提供帮助。不幸的是,那里没有任何明确的答案,所以请提示我如何管理它?我可以以某种方式关闭活性探针并播放服务还没有准备好,就像从一开始一样吗?然后再打开?

编辑:解决方案是:management.server.port=8081 OR HPA(Horizontal pod autoscalar) which scale out the pod as traffic increases

1 个答案:

答案 0 :(得分:0)

我认为您没有任何想做的事情,最好使用 HPA(水平 pod 自动标量),它可以随着流量的增加和 pod 数量的增加而扩展 pod,并平衡这些 pod 之间的负载。请务必检查此链接 https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

HPA 根据 Pod 的 CPU/内存利用率扩展 Pod。