【发布时间】:2021-07-20 22:42:17
【问题描述】:
我有一个 GCP 托管实例组,我想使用 cron 计划在 0 到 1 个实例之间进行横向扩展。 GCP 有一个 limitation,上面写着:
扩缩计划只能用于具有至少一种其他类型的自动扩缩信号的 MIG,例如基于平均 CPU 利用率、负载平衡服务容量或 Cloud Monitoring 指标的扩缩信号。
所以我必须指定一个额外的自动缩放信号。 文档继续提出解决方法:
要仅根据计划进行扩展,您可以将 CPU 利用率目标设置为 100%。
所以我做到了。但是托管组不会缩小到 0,它只是保持在 1。
我没有使用过Scale-in controls,所以唯一可以防止缩减的AFAICT 是我已经考虑到的10 分钟Stabilization period。
我的自动扩缩器配置:
{
"name":"myname",
"target":"the/url",
"autoscalingPolicy":{
"minNumReplicas":0,
"maxNumReplicas":1,
"scalingSchedules":{
"out":{
"minRequiredReplicas":1,
"schedule":"0,20,40 * * * *",
"durationSec":300,
"description":"scale out"
}
},
"cpuUtilization":{
"utilizationTarget":1
}
}
}
计划本身将 5 分钟的横向扩展设置为 1 个实例,然后有 10 分钟的稳定时间,然后缩减为 0 应该发生,但它没有。
如果我使用相同的配置,但只更改 maxNumReplicas=2 和 minRequiredReplica=2,自动缩放器会在预期的时间进行缩放,但在 1 到 2 个实例之间。我认为这意味着时间表本身很好。
我的理论是cpuUtilization 信号会阻止缩放到 0。有没有办法可以按计划在 0 和 1 之间缩放?也许是另一个信号,不是cpuUtilization?
谢谢!
【问题讨论】:
-
这可能最好在 serverfault 上问,因为它不是编程问题。虽然我觉得有趣的是,MIG 是使用自动缩放器“minNumReplicas”创建的:“0”,因为它可能是not be allowed。也许用这个gcloud command来描述MIG可能会透露更多信息。
标签: google-cloud-platform google-compute-engine autoscaling