Kubernetes HPA 基于 Prometheus 自定义指标的可控弹性伸缩
在《Kubernetes 的自动伸缩你用对了吗?》 一文中详细说明了如何使用 Kubernetes 的自动伸缩。在 Kubernetes 中弹性伸缩主要有三种:HPA、VPA、CA。本文不再详细说明,有兴趣的可以看那篇文章。这里主要来说下 Pod 水平缩放 HPA。 随着 Kubernetes v1.23 的发布,HPA 的 API 来到了稳定版 autoscaling/v2: 基于自定义指标的伸缩 基于多项指标的伸缩 可配置的伸缩行为 从最初的 v1 版本 HPA 只支持 CPU、内存利用率的伸缩,到后来的自定义指标、聚合层 API 的支持,到了 v1.18 版本又加入了配置伸缩行为的支持,HPA 也越来越好用、可靠。 依靠 CPU 或者内存指标的扩容并非使用所有系统,看起来也没那么可靠。对大部分的 web 后端系统来说,基于 RPS(每秒请求数)的弹性伸缩来处理突发的流量则会更加靠谱。 Prometheus 也是当下流行开源监控系统,通过 Prometheus 可以获取到系统的实时流量负载指标,今天我们就来尝试下基于 Prometheus 的自定义指标进行弹性伸缩。