I referred this stackoverflow question to set up my HPA(Horizontal Pod Autoscaler) for google kubernetes engine(gke) workload. According to the details of that question and the details specified here I mentioned my targetAverageValue to be 50 which should be considered 50% but when I run the command kubectl describe hpa this is the line I notice in the logs

Metrics: ( current / target ) "kubernetes.io|container|accelerator|duty_cycle" (target average value): 33500m / 50

This is my hpa yaml

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: gpu-metric
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: parabole-dj-u1
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: External
    external:
      metricName: kubernetes.io|container|accelerator|duty_cycle
      targetAverageValue: 50

It seems to be measuring using some other unit. What then should be my targetAverageValue if I want it to autoscale at 50% duty_cycle?

Adding the screenshot of the duty cycle metric from the portal like @Alberto Pau asked duty_cycle image

1

There are 1 best solutions below

7
On BEST ANSWER

Your configuration is correct, HPA always shows in the mili units. The current utilization is probably 33.5%, just divide the number with the "m" by 1000 and you get the percentages.