kubernetes - Spring Boot 应用程序中的水平 Pod Autoscalar
问题描述
我有一个 Spring Boot 应用程序,并且为此创建了一个部署 yaml 文件。现在我已经为它分配了资源:
resources:
requests:
memory: "200Mi"
cpu: "250m"
limits:
memory: "655Mi"
cpu: "500m"
我创建了我的自动标量:
kubectl autoscale deployment demo-app --cpu-percent=50 --min=1 --max=10
现在我的问题是当我的应用程序启动时,pod 的 CPU 利用率几乎达到了 100%(在启动期间仅 5-10 分钟然后恢复正常),因此我的自动标量创建了一个新的 pod。
但我想要的是它应该在 pod 启动后等待一个特定的时间段(以便完成就绪探测),然后只在需要时创建新的 pod
解决方案
有一个标志 --horizontal-pod-autoscaler-cpu-initialization-period
也可以引入就绪延迟:--horizontal-pod-autoscaler-initial-readiness-delay
并且可以使用度量循环时间,--horizontal-pod-autoscaler-sync-period
来计算总延迟。
这些标志可以帮助您设置值,这样您就可以避免在应用初始化期间出现自动缩放问题。
在这里阅读
推荐阅读
- botframework - 聊天会话开始时将参数传递给 botframework
- google-pagespeed - Google PageSpeed Insights 失败 - Lighthouse 返回错误:DNS_FAILURE。DNS 服务器无法解析提供的域
- reactjs - useState 不更新状态
- asp.net-core - .NET Core 3 中的授权:执行要求的顺序
- c - 在没有重复的情况下将 C 打印登录到 stdout 和 stderr
- url - 如果我的密码类似于“pass@123”以及如何添加到 URL,该怎么办?
- java - 在 SQL Server 2012 中读取/格式化日期时间字段时出错
- android - 为 fastlane 定义一个自定义的 AndroidManifest 属性
- python-3.x - 在运行 db init 时将记录添加到表中
- excel - FormulaR1C1 中的“查找”返回错误 1004