kubernetes 规模扩大条件保持闲置pod增加

hivapdat  于 2023-03-01  发布在  Kubernetes
关注(0)|答案(1)|浏览(128)

具有50%平均CPU的HPA配置

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

我发现问题是我只有one pod接收流量,所以CPU高于请求CPU的50%
然后开始自动扩展新的pod,但是那些pod有时还没有接收到任何流量,所以cpu消耗非常低。
我的期望是看到那些不使用任何cpu的pod在某个时候被缩小(应该需要多少?),但它没有发生,我相信原因是,一个pod cpu使用的第一个条件,高于50%是迫使保持这些pod。
我需要的是扩大/缩小这些pod,直到它们可以开始接收流量,这取决于它们部署在哪个节点。
关于如何解决这个问题有什么建议吗?

brtdzjyr

brtdzjyr1#

    • HPA CPU利用率:**

targetCPUUtilizationPercentage为50表示,如果所有Pod的平均CPU利用率超过50%,则HPA将扩大部署;如果所有Pod的平均CPU利用率低于50%,则HPA将缩小部署(如果复制副本数量超过1)。工作原理如下:
我刚刚检查了代码,发现targetUtilization百分比计算使用了资源请求。您可以参考下面的代码:

currentUtilization = int32((metricsTotal * 100) / requestsTotal)

下面是链接www.example.comhttps://github.com/kubernetes/kubernetes/blob/v1.9.0/pkg/controller/podautoscaler/metrics/utilization.go#L49
有一个官方演练侧重于HPA及其扩展:
Kubernetes.io: Docs: Tasks: Run application: Horizontal pod autoscale: Walkthrough

    • 支持可配置的缩放行为**

Kubernetes v1.23 [稳定](自动缩放/v2beta2API版本先前作为测试特性提供了这种能力)如果使用v2HorizontalPodAutoscalerAPI,您可以使用行为字段(请参阅API参考)来配置单独的放大和缩小行为。您可以通过在行为字段下设置scaleUp和/或scaleDown来指定这些行为。您可以指定一个稳定窗口,以防止缩放目标的副本计数波动。缩放策略还允许您控制缩放时副本的更改率。
Kubernetes.io运行应用程序:水平pod自动缩放:支持可配置的缩放行为 Support for configurable scaling behavior
您可以将新引入的字段(如behaviorstabilizationWindowSeconds)用于特定需求的工作负载。

相关问题