GKE 上的 HPA 将部署扩展到 0
Posted
技术标签:
【中文标题】GKE 上的 HPA 将部署扩展到 0【英文标题】:HPA scale deployment to 0 on GKE 【发布时间】:2020-10-06 06:33:10 【问题描述】:我正在尝试将 HPA 与外部指标一起使用以将部署缩减到 0。我正在使用版本为 1.16.9-gke.2 的 GKE。
根据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】:根据this,我认为它会起作用,但事实并非如此。
某些功能在 Kubernetes 中运行的事实并不意味着它们在托管解决方案中启用,例如 GKE
。
此功能由名为 HPAScaleToZero
的功能门启用。自 Kubernetes 1.16 版以来,它处于 Alpha
状态。根据下面的链接,默认情况下它是禁用的。
请在此处查看有关功能门的官方文档:Kubernetes.io: Docs: Feature Gates
更进一步:
Kubernetes 中的新功能被列为 Alpha、Beta 或 Stable,具体取决于它们的开发状态。在大多数情况下,列为 Beta 或 Stable 的 Kubernetes 功能都包含在 GKE 中
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 版本如何,都为 Kubernetes 和 GKE 启用了 alpha API。 Google 会定期为客户提供测试和验证不普遍可用的 GKE 版本的能力。
Cloud.google.com: Kubernetes Engine: Alpha clusters
请记住,运行 alpha 集群有一些缺点:
限制
Alpha 集群有以下限制:
GKE SLA 未涵盖 无法升级 在 alpha 集群上禁用节点自动升级和自动修复 30 天后自动删除 不接收安全更新
【讨论】:
不错的概述。错误消息是"must be greater than or equal to 0" (note the0
at the end) if HPAScaleToZero
-feature-gate is enabled。以上是关于GKE 上的 HPA 将部署扩展到 0的主要内容,如果未能解决你的问题,请参考以下文章