此为关于Prometheus-adapter的第二篇,其一基础以及安装请见其一.

虽然有Kube-PrometheusPrometheus-adapter两大组件加持,HPA除了原生的CPU内存,还有蛮多选择。但要想真正贴合业务实现自义指标的HPA(如基于QPS)。还是差点火候。有时想想开源就是这样,总感觉产品拿过来直接用还是有点不顺手,总归是要自己改造下才好用。

此为思路指导,实践感觉还是有点麻烦,先理下思路,后续有需求再细细研究。

总体步骤

  1. 应用实现一个/metrics接口,导出需要的指标,如http_request。每次接收HTTP请求时,加1

  2. 更改Promthes-adapterConfigMap,将自定义的指标添加。如何配置,可以参考这里

  3. 创建Monitor对象,告诉Prometheus adapter需要从哪里获取指标,可以参考这里

  4. 创建HPA对象,参考这里

其他

按官方推荐的与目前大家通用的做法,我感觉还是过于复杂。K8S集群中需要安装一堆组件,还要业务代码加东西。我感觉还是很麻烦。下面是不麻烦的选项

  • Simple-hpa

    通过解析Ingress NGINX的访问日志来计算后端PodQPS,根据QPS进行弹性伸缩