HorizontalPodAutoscaler Kubernetes不保留最小副本数



下午好。我正在使用HPA(HorizontalPodAutoscaler(来自动缩放pod的副本,在这种情况下,我使用内存使用情况作为参考,我声明如下:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: find-complementary-account-info-1
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: find-complementary-account-info-1
minReplicas: 2
maxReplicas: 5
metrics:
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 70

我想要的是,当pod的内存使用率大于70%时,自动缩放我的pod,当这个百分比下降时,我的副本会返回到声明的最小值,然而,在进行测试时,我将限制为70,而没有。然而,当内存使用率低于这个值时,副本会在4中继续。

5分钟过去了,HPA显示:

[dockermd@tmp108 APP-MM-ConsultaCuentaPagadoraPospago]$ kubectl get hpa -o wide
NAME                                REFERENCE                                      TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
find-complementary-account-info-1   Deployment/find-complementary-account-info-1   65%/70%   2         5         4          2d4h

我对HPA有一个错误的概念,或者我以错误的方式声明HPA的配置,或者当内存使用率低于指示的时如何减少副本数量

我的环境是内部部署的,并使用metalb进行配置,我使用LoadBalancer来公开我的服务

它按设计工作。该算法使用以下公式计算所需的副本数量:

desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

因此,如果你的desiredMetricValue是70%,而currentMetricValue是的65%

desiredReplicas=4*(65%/70%)=~3.7

CEIL((函数返回大于或等于一个数字的最小整数值,因此在本例中为4。

如果你想将复制副本的数量减少到3个,你必须将利用率降低到52.5%:

3=4*(`currentMetricValue`/70)
currentMetricValue=52.5%

最新更新