繁体   English   中英

Kubernetes 自动缩放:HPA 不适用于 Java Netty API 的自定义指标

[英]Kubernetes autoscaling : HPA not working with custom metrics for Java Netty API

我正在根据自定义指标设置 HPA - 基本上没有。 部署的线程数。

我创建了一个 PrometheusRule 来获取线程的平均值(基于 5 分钟)。 在容器上,我在做cont。 增加线程的负载,平均值也越来越高。

我从 2 个副本开始,当当前值超过目标值时,我没有看到我的部署向外扩展。

如您所见,已将目标设置为 44,当前值为 51.55 超过 10 分钟,但仍然没有放大。 在此处输入图片说明

版本信息

  • Kubernetes(AKS):1.19.11
  • 普罗米修斯:2.22.1
  • 通过 prometheus-operator (0.7) 完成设置
  • Autoscaling 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 正在做的是获取具有该标签的所有 pod 的统计信息,然后进行放大/缩小。 一旦我更正了标签,hpa 就会按预期工作。

但同样在 prometheus UI 上仅显示一种类型的 pod 的统计信息。 看起来像一些内部错误或什么的。 当我们提供名称为什么它会根据标签获取统计信息时没有得到。

要记住的一点:始终仔细检查您的标签。

暂无
暂无

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

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