применить HPA для Statefulset в кубернетах?

Я пытаюсь настроить HPA для моего набора состояний (для elasticsearch) в среде kubernetes. Я планирую масштабировать набор состояний, используя использование процессора. Я создал сервер метрик из https://github.com/stefanprodan/k8s-prom-hpa/tree/master/metrics-server.

и мой HPA yaml для statefulset выглядит следующим образом:

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: dz-es-cluster
spec:
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: StatefulSet
    name: dz-es-cluster
  minReplicas: 2
  maxReplicas: 3
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 80

Но получаются следующие выходные данные в гпа:

Conditions:
  Type         Status  Reason          Message
  ----         ------  ------          -------
  AbleToScale  False   FailedGetScale  the HPA controller was unable to get the target's current scale: the server could not find the requested resource
Events:
  Type     Reason          Age                From                       Message
  ----     ------          ----               ----                       -------
  Warning  FailedGetScale  1m (x71 over 36m)  horizontal-pod-autoscaler  the server could not find the requested resource

кто-нибудь, пожалуйста, помогите мне ..


person manu thankachan    schedule 13.02.2019    source источник
comment
Моя версия Kubernetes - v1.8.15   -  person manu thankachan    schedule 13.02.2019
comment
Не могли бы вы поделиться выводом kubectl top nodes?   -  person Prafull Ladha    schedule 13.02.2019
comment
@PrafullLadha, вот это результат. root@ip:~# kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% ip-***-20-32-***.ec2.internal 1454m 9% 18392Mi 28% ip-***-20-34-***.ec2.internal 2130m 13% 31761Mi 49%   -  person manu thankachan    schedule 13.02.2019
comment
Ваш сервер метрик работает нормально. Вы указали раздел resources в своем наборе состояний. Это обязательный раздел для работы HPA. kubernetes.io/docs/concepts/configuration/   -  person Prafull Ladha    schedule 13.02.2019
comment
В моем yaml с полным набором состояний есть запись для ресурсов, а ограничение ЦП установлено на 1, а запрос - на 0,25. Да, мой сервер метрик работает нормально. Я протестировал его работу, автомасштабируя одно из моих развертываний. Проблема только с statefulset.   -  person manu thankachan    schedule 13.02.2019


Ответы (1)


Поддержка автомасштабирования наборов состояний с помощью HPA добавлена ​​в kubernetes 1.9, поэтому ваша версия не поддерживает ее. После Kubernetes 1.9 вы можете автоматически масштабировать свои наборы состояний, используя:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: YOUR_HPA_NAME
spec:
  maxReplicas: 3
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: StatefulSet
    name: YOUR_STATEFUL_SET_NAME
  targetCPUUtilizationPercentage: 80

Пожалуйста, перейдите по следующей ссылке для получения дополнительной информации:

https://github.com/kubernetes/kubernetes/issues/44033

person Prafull Ladha    schedule 13.02.2019