HPA流程

在这里插入图片描述

  1. 指标收集组件周期性从容器或者其他中间件中获取指标,cadvisor是k8s自身的指标采集组件,一般用于采集pod,node的cpu和内存使用数据;Prometheus一般用于自定义指标的收集(比如说http响应延时,qps),另外针对不同的被监控的中间件,都有开源的Prometheus exporter直接使用获取中间件的指标,比如说mq消息积压指标,数据库连接数等。这些采集的指标都可以用来判断应用是否需要调整副本数量。

  2. 收集的指标数据不能直接被k8s的组件使用,需要按照k8s提供的metric接口进行一轮转换,将不同采集组件采集的数据转换为k8s可以识别的指标数据结构。对于cadvisor是k8s的组件,不需要另外开发转换器;Prometheus有开源的转换器直接使用。

  3. k8s-apiserver(数据库网关)是k8s所有crud操作的入口,其他任何k8s的组件需要查询收集的指标数据,需要从apiserver进行查询;

  4. 用户通过web-ui或者其他方式将自己需要的扩缩容配置内容下发到apiserver(数据库网关)

  5. 副本计算,通过以下获取的数据15s计算一次期望副本数,如果期望副本数和实际副本数不一致则触发弹性扩缩容

    • 从第4步中查询用户配置的扩缩容规则
    • 从第3步中查询实时的指标数据
    • 从k8s-apiserver中查询当前应用配置的副本数
  6. 扩缩容行为影响

    • 稳定窗口,当期望副本和实际副本数量不一致的时间,不会马上更新到apiserver,而是等待一定的时间,超过这个等待时间后,期望副本数才会生效
    • 多指标计算规则,当配置多个指标计算(比如说同时配置了cpu和内存)的期望副本数量都和实际副本数量不一致时,默认是以哪个指标计算的期望副本数量大,则以哪个为准。
    • 步长策略,假如期望副本数量为8,但是实际数量为2,受默认步长策略(指数增长),hpa控制器会按照2,4,8这种方式通知到apiserver,而不是一次性的进行大规模扩容
  7. watch副本配置指的是,k8s工作负载会去监听apiserver(数据库),当apiserver中副本数量配置发生变化了,k8s工作负载会调整副本数量

  8. 副本调整指是 ,k8s工作负载会调整集群中实际运用的pod副本数量,最终实现副本数量的变化

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值