我正在尝试将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
非常感谢您的帮助!
答案 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版本的功能,以进行测试和验证。
请记住,运行 alpha 群集有一些缺点:
限制
Alpha群集具有以下限制:
- GKE SLA不涵盖
- 无法升级
- 在Alpha群集上禁用了节点自动升级和自动修复
- 30天后自动删除
- 不接收安全更新