首页 > 解决方案 > 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

标签: kubernetes

解决方案


有一个标志 --horizontal-pod-autoscaler-cpu-initialization-period 也可以引入就绪延迟:--horizontal-pod-autoscaler-initial-readiness-delay并且可以使用度量循环时间,--horizontal-pod-autoscaler-sync-period来计算总延迟。

这些标志可以帮助您设置值,这样您就可以避免在应用初始化期间出现自动缩放问题。

在这里阅读


推荐阅读