繁体   English   中英

如何使用 Prometheus 适配器根据响应时间(自定义指标)在 Kubernetes 中执行 HorizontalPodAutoscaling?

[英]how to perform HorizontalPodAutoscaling in Kubernetes based on response time (custom metric) using Prometheus adapter?

大家好,

我有一个基于kubeadm的集群,有 1 个 master 和 2 个 worker。 我已经实现了内置的 HorizontalPodAutoscaling(基于 cpu_utilization 和内存),现在我想根据自定义指标(在我的例子中是响应时间)执行自动缩放。

我正在使用Prometheus 适配器进行自定义指标。而且,我在普罗米修斯中找不到任何名为 response_time 的指标。

  1. prometheus 中是否有任何指标可以根据响应时间扩展应用程序,它的名称是什么?

  2. 我是否需要编辑默认的水平自动缩放算法,或者我必须从头开始制定一个可以根据响应时间缩放我的应用程序的算法?

Prometheus 只有 4种度量类型CounterGaugeHistogramSummary

我猜直方图就是你需要的

直方图对观察结果进行采样(通常是请求持续时间或响应大小等),并将它们计入可配置的存储桶中。 它还提供所有观察值的总和。

基本指标名称为<basename>的直方图在一次抓取期间公开了多个时间序列:

  • 观察桶的累积计数器,显示为<basename>_bucket{le="<upper inclusive bound>"}
  • 所有观察值的总和,显示为<basename>_sum
  • 已观察到的事件计数,显示为<basename>_count (与上面的<basename>_bucket{le="+Inf"}相同)

1.

有一个stackoverflow question ,您可以在其中查询延迟(响应时间),所以我认为这可能对您有用。

2.

我不知道我是否理解正确,但如果你想编辑HPA ,你可以编辑 yaml 文件,删除以前的 HPA 并创建新的。

kubectl delete hpa <name.yaml>
kubectl apply -f <name.yaml>

一篇关于Autoscaling on custom metrics with custom Prometheus Metrics 的好文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM