kubernetes/ingress-nginx

[AutoScaling] Kubernetes Ingress Object Metrics with Community NGINX Ingress Controller

Open

#7,283 建立於 2021年6月25日

在 GitHub 查看
 (22 留言) (7 反應) (0 負責人)Go (15,199 star) (7,888 fork)batch import
help wantedkind/featurelifecycle/staleneeds-triagepriority/important-longterm

描述

What would you like to be added:

A custom metrics API implementation for capturing the request count per unit time of a Kubernetes Ingress resource object, when using the community NGINX Ingress Controller in order to be used as a metric for Horizontal Pod Autoscaling (HPA).

The ultimate goal is to be able to add a request per unit time metric to Horizontal Pod Autoscaler as described in the walk through, when using the community NGINX Ingress Controller implementation.

type: Object
object:
  metric:
    name: requests-per-second
  describedObject:
    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    name: main-route
  target:
    type: Value
    value: 2k

An example similar to the suggested solution can be found at Skipper collector with the kube-metrics-adapter. This particular solution works when using the skipper Ingress Controller implementation.

Why is this needed:

  • The accuracy of request per unit time, as a metric for HPA is considered to be very high. Especially, when working with container based deployments of language runtimes involving garbage collection. Please see this #sig-autoscaling Slack channel discussion for a details about this topic.

  • Community NGINX Ingress Controller being one of the most widely used implementations.

Notes:

Suggested Assignees:

@rikatz @strongjz

貢獻者指南