Как можно использовать Horizontal Pod Autoscaler для масштабирования настраиваемого ресурса (CR) на основе использования ресурсов дочернего развертывания?

У меня есть специальный ресурс, который управляет развертыванием. Я хочу, чтобы мой HPA мог масштабировать количество реплик CR на основе использования ЦП развертывания, а не напрямую масштабировать развертывание. Если он масштабирует развертывание напрямую, то при запуске цикла согласователя он сразу же увидит несоответствие между количеством реплик развертывания и желаемым количеством реплик, как указано в CR, и обновит развертывание соответствующим образом.

Я довольно близок. У меня есть конечная точка шкалы моего CR, работающая должным образом, и мой HPA может даже достичь конечной точки. Он просто не может прочитать использование ресурсов ребенком.

У меня также получилось, что он работает, если у меня есть прямое масштабирование развертывания, но, как я сказал выше, это не жизнеспособное решение. Более просто доказательство того, что у меня есть сервер метрик, работающий нормально, и использование ресурсов доступно.

HPA YAML:

kind: HorizontalPodAutoscaler
metadata:
  name: {{.metadata.name}}
  namespace: {{.spec.namespace}}
spec:
  minReplicas: 1
  maxReplicas: 2
  metrics:
  - resource:
      name: cpu
      targetAverageUtilization: 2
    type: Resource
  scaleTargetRef:
    apiVersion: testcrds.group.test/v1alpha1
    kind: MyKind
    name: my-kind-1

И доказательство того, что HPA, по крайней мере, может достичь конечной точки масштабирования CR:

Name:                                                  my-hpa
Namespace:                                             default
Labels:                                                <none>
Annotations:                                           kubectl.kubernetes.io/last-applied-configuration:
                                                         {"kind":"HorizontalPodAutoscaler","apiVersion":"autoscaling/v2beta1","metadata":{"name":"my-kind-1","namespace":"default","creationTimestamp":n...
CreationTimestamp:                                     Wed, 21 Aug 2019 17:22:11 -0400
Reference:                                             MyKind/my-kind-1
Metrics:                                               ( current / target )
  resource cpu on pods  (as a percentage of request):  <unknown> / 2%
Min replicas:                                          1
Max replicas:                                          2
MLP pods:                                              0 current / 1 desired
Conditions:
  Type         Status  Reason            Message
  ----         ------  ------            -------
  AbleToScale  True    SucceededRescale  the HPA controller was able to update the target scale to 1
Events:
  Type    Reason             Age                   From                       Message
  ----    ------             ----                  ----                       -------
  Normal  SuccessfulRescale  3m54s (x80 over 23m)  horizontal-pod-autoscaler  New size: 1; reason: Current number of replicas below Spec.MinReplicas

Как видно, нет кубика при извлечении использования ресурсов ...


person Scott Berman    schedule 21.08.2019    source источник
comment
Вы развернули сервер метрик?   -  person Crou    schedule 22.08.2019


Ответы (1)


Я наконец-то понял. Написал короткую статью на среднем уровне, так как нужно выполнить несколько шагов, ответ в статье: https://medium.com/@thescott111/autoscaling-kubernetes-custom-resource-using-the-hpa-957d00bb7993

person Scott Berman    schedule 23.08.2019