Как можно использовать Горизонтальный Автоскалер для масштабирования пользовательского ресурса (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

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

1 ответ

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

Другие вопросы по тегам