我有一个spring引导应用程序,并为此创建了一个部署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分钟,然后恢复正常),因此我的autoscalar创建了一个新的pod。
但我想要的是,它应该在pod启动后等待一段特定的时间(等待就绪探测完成),然后在需要时才创建新的pod
发布于 2020-07-23 18:36:29
还可以引入就绪延迟的标志:--horizontal-pod-autoscaler-initial-readiness-delay
,您可以使用指标循环时间,--horizontal-pod-autoscaler-sync-period
来计算总延迟。
这些标志可以帮助您设置值,从而避免应用初始化时出现弹性伸缩的问题。
阅读here
发布于 2020-07-23 18:36:46
有一个全局标志--horizontal-pod-autoscaler-cpu-initialization-period
,它表示pod启动后CPU样本可能为skipped.Default的时间段为5分钟.You需要在kube控制器管理器中将其设置为更高的值
https://stackoverflow.com/questions/63051894
复制相似问题