HPA流程
Prometheus一般用于自定义指标的收集(比如说http响应延时,qps),另外针对不同的被监控的中间件,都有开源的Prometheus exporter直接使用获取中间件的指标,比如说mq消息积压指标,数据库连接数等。收集的指标数据不能直接被k8s的组件使用,需要按照k8s提供的metric接口进行一轮转换,将不同采集组件采集的数据转换为k8s可以识别的指标数据结构。副本调整指是 ,k8s工
-
指标收集组件周期性从容器或者其他中间件中获取指标,cadvisor是k8s自身的指标采集组件,一般用于采集pod,node的cpu和内存使用数据;Prometheus一般用于自定义指标的收集(比如说http响应延时,qps),另外针对不同的被监控的中间件,都有开源的Prometheus exporter直接使用获取中间件的指标,比如说mq消息积压指标,数据库连接数等。这些采集的指标都可以用来判断应用是否需要调整副本数量。
-
收集的指标数据不能直接被k8s的组件使用,需要按照k8s提供的metric接口进行一轮转换,将不同采集组件采集的数据转换为k8s可以识别的指标数据结构。对于cadvisor是k8s的组件,不需要另外开发转换器;Prometheus有开源的转换器直接使用。
-
k8s-apiserver(数据库网关)是k8s所有crud操作的入口,其他任何k8s的组件需要查询收集的指标数据,需要从apiserver进行查询;
-
用户通过web-ui或者其他方式将自己需要的扩缩容配置内容下发到apiserver(数据库网关)
-
副本计算,通过以下获取的数据15s计算一次期望副本数,如果期望副本数和实际副本数不一致则触发弹性扩缩容
- 从第4步中查询用户配置的扩缩容规则
- 从第3步中查询实时的指标数据
- 从k8s-apiserver中查询当前应用配置的副本数
-
扩缩容行为影响
- 稳定窗口,当期望副本和实际副本数量不一致的时间,不会马上更新到apiserver,而是等待一定的时间,超过这个等待时间后,期望副本数才会生效
- 多指标计算规则,当配置多个指标计算(比如说同时配置了cpu和内存)的期望副本数量都和实际副本数量不一致时,默认是以哪个指标计算的期望副本数量大,则以哪个为准。
- 步长策略,假如期望副本数量为8,但是实际数量为2,受默认步长策略(指数增长),hpa控制器会按照2,4,8这种方式通知到apiserver,而不是一次性的进行大规模扩容
-
watch副本配置指的是,k8s工作负载会去监听apiserver(数据库),当apiserver中副本数量配置发生变化了,k8s工作负载会调整副本数量
-
副本调整指是 ,k8s工作负载会调整集群中实际运用的pod副本数量,最终实现副本数量的变化
更多推荐
所有评论(0)