首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HorizontalPodAutoscaler Kubernetes不保留副本的最小数量

HorizontalPodAutoscaler Kubernetes不保留副本的最小数量
EN

Stack Overflow用户
提问于 2020-11-01 06:27:38
回答 1查看 124关注 0票数 1

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

代码语言:javascript
复制
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显示如下:

代码语言:javascript
复制
[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公开我的服务

EN

回答 1

Stack Overflow用户

发布于 2020-11-03 01:55:45

它正按照设计的方式工作。使用以下公式计算algorithm counts所需的副本数量:

代码语言:javascript
复制
desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

所以如果你的desiredMetricValue是70%,currentMetricValue是65%,那么

代码语言:javascript
复制
desiredReplicas=4*(65%/70%)=~3.7

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

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

代码语言:javascript
复制
3=4*(`currentMetricValue`/70)
currentMetricValue=52.5%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64626991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档