kubernetes - 如何设置 liveness & readiness 探针让 Spring Boot 应用程序在高负载下存活而不是被 kubernetes 杀死并重新启动?
问题描述
开发一个 Spring Boot 应用程序(带有执行器),有时应用程序负载非常高(或“忙”,线程池已耗尽并且请求排在长队列中)以至于 liveness probe 可以很容易地决定重新启动它(而不是停留在一个队列)。
我想以某种方式让应用程序自行管理它而不是重新启动 pod。
阅读后: 当 Pod “忙”时指定给 Kubernetes我意识到 liveness & readiness 探针可以提供帮助。不幸的是,那里没有任何明确的答案,所以请提示我如何管理它?我可以以某种方式关闭活跃度探测并播放服务尚未准备好,因为它从一开始就已经准备好了?然后再开机?
编辑:解决方案是:management.server.port=8081
或HPA(Horizontal pod autoscalar) which scale out the pod as traffic increases
解决方案
我不认为你想做任何事情,最好你应该有 HPA(Horizontal pod autoscalar),它随着流量的增加 pod 数量的增加而扩展 pod 并平衡这些 pod 之间的负载。请检查此链接https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
HPA 根据 pod 的 CPU/内存利用率横向扩展 pod。
推荐阅读
- c# - 如何在 Unity 中更改其他玩家的相机?
- java - 黄瓜,在所有场景中重复登录步骤
- mongodb - 使用 $let 的聚合 $lookup 不起作用
- python - 尝试在 python 中绘制图像(使用 scipy 和 numpy)
- image - 从二值图像中去除噪声(小白块)
- react-native - Xcode 10 Build Location -> Per-configuration Build Products Path
- flutter - StreamBuilder 和 AsyncSnapshot + rxdart 颤振问题
- python - 如何在 Django 中使用 OrientDB?
- windows - 如何通过 MSVS 2017 x64 命令行将链接器选项传递给“cl”?
- c - C程序提前结束