【问题标题】:How to use custom metric with specific filter in Horizontal Pod Autoscaling如何在 Horizo​​ntal Pod Autoscaling 中使用带有特定过滤器的自定义指标
【发布时间】:2019-04-12 23:29:05
【问题描述】:

我正在尝试根据自定义指标 nginx_ingress_controller_nginx_process_connections_total 为 Ingress Controller 设置 HPA

但是在从 localhost:10254/metrics 获取指标时,我可以看到三个带有过滤器的指标,如下所示:

# HELP nginx_ingress_controller_nginx_process_connections_total total number of connections with state {active, accepted, handled}
# TYPE nginx_ingress_controller_nginx_process_connections_total counter
nginx_ingress_controller_nginx_process_connections_total{controller_class="nginx",controller_namespace="ingress-nginx",controller_pod="nginx-ingress-controller-7dddd-mssssf",state="accepted"} 479707
nginx_ingress_controller_nginx_process_connections_total{controller_class="nginx",controller_namespace="ingress-nginx",controller_pod="nginx-ingress-controller-7dddd-mssssf",state="active"} 3
nginx_ingress_controller_nginx_process_connections_total{controller_class="nginx",controller_namespace="ingress-nginx",controller_pod="nginx-ingress-controller-7dddd-mssssf",state="handled"} 479707

在这些指标中,我想将以下指标用于 HPA。

nginx_ingress_controller_nginx_process_connections_total{controller_class="nginx",controller_namespace="ingress-nginx",controller_pod="nginx-ingress-controller-7dddd-mssssf",state="active"}

如何使用来自这些不同值的指定指标。我的 HPA yaml 文件如下所示。

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta1
metadata:
  name: ingress-hpa
spec:
  scaleTargetRef:
    kind: Deployment
    name: nginx-ingress-controller
  minReplicas: 3
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metricName: <I need to set the custom metric here>
      targetAverageValue: 10000

【问题讨论】:

    标签: kubernetes autoscaling nginx-ingress


    【解决方案1】:

    您可以使用 HPA 自定义指标。您需要在 POD 中公开端点以获取指标,还需要设置 Prometheus 和自定义指标 api 服务器。

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 2021-12-19
      • 2019-06-25
      • 1970-01-01
      • 2020-01-11
      • 2021-08-14
      • 2019-06-12
      • 2019-03-31
      相关资源
      最近更新 更多