HPA在GKE上的规模部署为0

时间:2020-06-16 15:27:58

标签: kubernetes google-kubernetes-engine autoscaling kubernetes-deployment hpa

我正在尝试将HPA与外部指标一起使用,以将部署缩减到0。我正在将GKE与版本1.16.9-gke.2。一起使用。

根据this,我认为它可以工作,但没有用。我仍然面临着: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 个答案:

答案 0 :(得分:3)

根据this,我认为它可以正常工作,但不可行。

Kubernetes中某些功能正在运行的事实并不意味着它们在GKE之类的托管解决方案中已启用。

此功能由称为 HPAScaleToZero 功能门启用。自Kubernetes 1.16版以来,它处于 Alpha 状态。默认情况下根据以下链接禁用它。 请在此处查看有关功能门的官方文档:Kubernetes.io: Docs: Feature Gates

进一步:

Kubernetes中的新功能根据其发展状况列出为Alpha,Beta或Stable。在大多数情况下,GKE包含Beta或Stable列出的Kubernetes功能

Cloud.google.com: Kubernetes Engine: Kubernetes versions and features

如您所见:

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

在“标准” GKE群集中禁用了此功能。


可以选择启用 HPAScaleToZero 。这需要运行 alpha 集群:

术语alpha集群意味着无论Kubernetes和GKE所运行的版本是什么,都为Kubernetes和GKE启用了alpha API。 Google会定期向客户提供测试通常不可用的GKE版本的功能,以进行测试和验证。

Cloud.google.com: Kubernetes Engine: Alpha clusters

请记住,运行 alpha 群集有一些缺点:

限制

Alpha群集具有以下限制:

  • GKE SLA不涵盖
  • 无法升级
  • 在Alpha群集上禁用了节点自动升级和自动修复
  • 30天后自动删除
  • 不接收安全更新
相关问题