参考文章:https://zhuanlan.zhihu.com/p/515517786
cluster autoscaler: https://zhuanlan.zhihu.com/p/501209578
HPA的作用:
配置HPA的目的是为了使我们部署的服务pod,能在特定情况下,进行减小和增多,比如说:当请求量较高时,我们希望增加pod,来对请求进行处理,空闲时,我们恢复到一个正常的pod数量状态,再结合cluster autoscaler(node的扩容,pod增加->node增加),从而实现eks弹性部署。
如何配置:
1.更改deployment的配置:在原来是基础上,添加
resources:
limits:
cpu: 800m
requests:
cpu: 300m
2.创建HPA,与 deployment 的名称相同:
kubectl autoscale deployment cms --cpu-percent=50 --min=1 --max=8
cms :服务名
50:cpu利用率的阈值,超过就会考虑扩容
max:最大可扩容到的pod数量
HPA算法:
知道如何配置了,也明白了什么时候扩容,现在还差一个问题,那就是CPU利用率是怎么计算得到的,相信网上的解释很多,我个人的理解是:
预期的pod数 = 目前的pod数 * ( 当前请求消耗的CPU / deployment 中配置的 request )
然后HPA会根据计算得到的预期pod,对目前的pod数量进扩缩。
以上就是我的个人理解,如有错误,欢迎指出。