Масштабирование развертывания HPA до 0 на GKE

Я пытаюсь использовать HPA с внешними метриками, чтобы уменьшить развертывание до 0. Я использую GKE с версией 1.16.9-gke.2.

В соответствии с этим я думал, что это будет работать, но это не так. Я все еще сталкиваюсь с:The HorizontalPodAutoscaler "classifier" is invalid: spec.minReplicas: Invalid value: 0: must be greater than or equal to 1

Ниже мое определение HPA:

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: classifier
spec:
  minReplicas: 0
  maxReplicas: 15
  metrics:
  - external:
      metricName: loadbalancing.googleapis.com|https|request_count
      targetAverageValue: "1"
    type: External
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: classifier

Большое спасибо за твою помощь!

1 ответ

Решение

В соответствии с этим я думал, что это будет работать, но это не так.

Тот факт, что некоторые функции работают в Kubernetes, не означает, что они включены в управляемых решениях, таких как GKE.

Эта функция включается функцией ворот, называемойHPAScaleToZero. Он находится вAlpha state начиная с версии Kubernetes 1.16. По умолчанию он отключен по ссылке ниже. Ознакомьтесь с официальной документацией по воротам функций здесь: Kubernetes.io: Docs: Feature Gates

Идти дальше:

Новые функции в Kubernetes перечислены как Alpha, Beta или Stable в зависимости от их статуса в разработке. В большинстве случаев функции Kubernetes, помеченные как бета-версия или стабильная версия, включены в GKE.

Cloud.google.com: Kubernetes Engine: версии и функции Kubernetes

Как вы можете видеть по:

The HorizontalPodAutoscaler "classifier" is invalid: spec.minReplicas: Invalid value: 0: must be greater than or equal to 1

Эта функция отключена в "стандартном" GKE кластеры.


Есть возможность иметь HPAScaleToZero включен. Это влечет за собой запуск альфа- кластера:

Термин альфа-кластер означает, что альфа-интерфейсы API включены как для Kubernetes, так и для GKE, независимо от версии Kubernetes, в которой работает кластер. Периодически Google предлагает клиентам возможность тестировать версии GKE, которые обычно недоступны, для тестирования и проверки.

Cloud.google.com: Kubernetes Engine: альфа-кластеры

Имейте в виду, что работающий альфа- кластер имеет ряд недостатков:

Ограничения

Альфа-кластеры имеют следующие ограничения:

  • Не покрывается GKE SLA
  • Не может быть обновлен
  • Автоматическое обновление и автоматическое восстановление узла отключены на альфа-кластерах.
  • Автоматически удаляется через 30 дней
  • Не получать обновления безопасности
Другие вопросы по тегам