kubernetes/ingress-nginx

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

Open

Aperta il 25 giu 2021

Vedi su GitHub
 (22 commenti) (7 reazioni) (0 assegnatari)Go (15.199 star) (7888 fork)batch import
help wantedkind/featurelifecycle/staleneeds-triagepriority/important-longterm

Descrizione

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

Guida contributor