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

问题描述

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

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

阅读后: 当 Pod “忙”时指定给 Kubernetes我意识到 liveness & readiness 探针可以提供帮助。不幸的是,那里没有任何明确的答案,所以请提示我如何管理它?我可以以某种方式关闭活跃度探测并播放服务尚未准备好,因为它从一开始就已经准备好了?然后再开机?

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

标签: kubernetesreadinessprobelivenessprobe

解决方案


我不认为你想做任何事情,最好你应该有 HPA(Horizo​​ntal pod autoscalar),它随着流量的增加 pod 数量的增加而扩展 pod 并平衡这些 pod 之间的负载。请检查此链接https://kubernetes.io/docs/tasks/run-application/horizo​​ntal-pod-autoscale/

HPA 根据 pod 的 CPU/内存利用率横向扩展 pod。


推荐阅读