1

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

据此,认为它会起作用,但事实并非如此。我仍然面临: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

非常感谢你的帮助 !

4

1 回答 1

4

据此,认为它会起作用,但事实并非如此。

某些功能在 Kubernetes 中运行的事实并不意味着它们在托管解决方案中启用,例如GKE.

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

更进一步:

Kubernetes 中的新功能根据其开发状态被列为 Alpha、Beta 或 Stable。在大多数情况下,列为 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启用。这需要运行一个alpha集群:

术语 alpha 集群意味着无论集群运行的 Kubernetes 版本如何,都为 Kubernetes 和 GKE 启用了 alpha API。Google 会定期为客户提供测试和验证不普遍可用的 GKE 版本的能力。

Cloud.google.com:Kubernetes 引擎:Alpha 集群

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

限制

Alpha 集群有以下限制:

  • GKE SLA 未涵盖
  • 无法升级
  • 在 alpha 集群上禁用节点自动升级和自动修复
  • 30天后自动删除
  • 不接收安全更新
于 2020-06-17T10:26:21.903 回答