【发布时间】:2020-10-23 08:20:32
【问题描述】:
自动缩放插件效果很好,但它默认为不需要的节点冷却 10 分钟。由于 AWS 按秒计费,我们希望更快地缩减规模以降低成本。
是否可以在 kops InstanceGroup 或集群自动扩缩器中配置冷却时间?
【问题讨论】:
标签: kubernetes autoscaling kops
自动缩放插件效果很好,但它默认为不需要的节点冷却 10 分钟。由于 AWS 按秒计费,我们希望更快地缩减规模以降低成本。
是否可以在 kops InstanceGroup 或集群自动扩缩器中配置冷却时间?
【问题讨论】:
标签: kubernetes autoscaling kops
不需要节点的时间少于 10 分钟(可通过 --scale-down-unneeded-time 标志配置)
原来如此
command:
- ./cluster-autoscaler
...
- --scale-down-unneeded-time=5m
【讨论】:
您需要在部署配置文件中定义自动缩放器时应用--scale-down-unneeded-time 标志:
这是一个例子:
command:
- ./cluster-autoscaler
- --cloud-provider=aws
- ...
- --scan-interval=25s
- --scale-down-unneeded-time=30s
还可以添加--scan-interval 标志。
还要记住,短暂的冷却时间会导致过度缩放/缩放不足。
冷却持续时间应该是至少目标指标在扩展事件后达到其新“正常”所需的时间。如果您的 CPU 使用率在扩展 2 倍后需要 3 分钟才能下降约 50%,那么少于 3 分钟的冷却时间会导致 AWS 在之前的扩展有时间对您的指标生效之前再次扩展,导致它超出必要的扩展。
看一看:autoscaling-aws、kubernetes-autoscaler、autoscaler-aws-kubernetes。
【讨论】:
--scan-interval=25s 并不好。保持默认为10s 或更少响应更灵敏。