Kubernetes 自动缩放:HPA 无法使用 Java Netty API 的自定义指标
Kubernetes autoscaling : HPA not working with custom metrics for Java Netty API
我正在根据自定义指标设置 HPA - 基本上没有。部署的线程数。
我创建了一个 PrometheusRule 来获取平均线程数(基于 5 分钟)。在容器上,我正在做续。负载增加线程和平均值也越来越高。
我从 2 个副本开始,当当前值超过目标值时,我没有看到我的部署扩展。
如您所见,已将目标设置为 44,当前值为 51.55 超过 10 分钟,但仍然没有放大。
版本信息
- Kubernetes (AKS):1.19.11
- 普罗米修斯:2.22.1
- 通过 prometheus-operator (0.7) 完成设置
- 自动缩放 api 版本:autoscaling/v2beta2
普罗米修斯规则
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: rdp-rest
namespace: default
labels:
app.kubernetes.io/name: node-exporter
app.kubernetes.io/version: 1.0.1
prometheus: k8s
role: alert-rules
run: rdp-rest
app: rdp-rest
spec:
groups:
- name: hpa-rdp-rest
interval: 10s
rules:
- expr: 'avg_over_time(container_threads{container="rdp-rest"}[5m])'
record: hpa_custom_metrics_container_threads_rdp_rest
labels:
service: rdp-rest
清单 - https://github.com/prometheus-operator/kube-prometheus/tree/release-0.7/manifests
更新(7 月 6 日) - 具有自定义指标的 HPA 适用于 nodejs/ngnix 等任何其他技术,但不适用于 netty api
有什么想法吗?
终于在一周后找到了根本原因。
所以问题出在标签上。我有 2 个具有相同标签的部署。所以内部 hpa 正在做的是获取所有带有该标签的 pods 的统计数据,然后进行缩放 up/down。一旦我更正了标签,hpa 就按预期工作了。
但在普罗米修斯 UI 上同样显示了仅一种类型 pods 的统计数据。
看起来像一些内部错误或其他东西。当我们提供名称时没有得到它为什么会根据标签获取统计信息。
要记住的一点:始终仔细检查您的标签。
我正在根据自定义指标设置 HPA - 基本上没有。部署的线程数。
我创建了一个 PrometheusRule 来获取平均线程数(基于 5 分钟)。在容器上,我正在做续。负载增加线程和平均值也越来越高。
我从 2 个副本开始,当当前值超过目标值时,我没有看到我的部署扩展。
如您所见,已将目标设置为 44,当前值为 51.55 超过 10 分钟,但仍然没有放大。
版本信息
- Kubernetes (AKS):1.19.11
- 普罗米修斯:2.22.1
- 通过 prometheus-operator (0.7) 完成设置
- 自动缩放 api 版本:autoscaling/v2beta2
普罗米修斯规则
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: rdp-rest
namespace: default
labels:
app.kubernetes.io/name: node-exporter
app.kubernetes.io/version: 1.0.1
prometheus: k8s
role: alert-rules
run: rdp-rest
app: rdp-rest
spec:
groups:
- name: hpa-rdp-rest
interval: 10s
rules:
- expr: 'avg_over_time(container_threads{container="rdp-rest"}[5m])'
record: hpa_custom_metrics_container_threads_rdp_rest
labels:
service: rdp-rest
清单 - https://github.com/prometheus-operator/kube-prometheus/tree/release-0.7/manifests
更新(7 月 6 日) - 具有自定义指标的 HPA 适用于 nodejs/ngnix 等任何其他技术,但不适用于 netty api
有什么想法吗?
终于在一周后找到了根本原因。
所以问题出在标签上。我有 2 个具有相同标签的部署。所以内部 hpa 正在做的是获取所有带有该标签的 pods 的统计数据,然后进行缩放 up/down。一旦我更正了标签,hpa 就按预期工作了。
但在普罗米修斯 UI 上同样显示了仅一种类型 pods 的统计数据。 看起来像一些内部错误或其他东西。当我们提供名称时没有得到它为什么会根据标签获取统计信息。
要记住的一点:始终仔细检查您的标签。