【问题标题】:GCP managed instance group won't scale down to 0 even after forced resize即使在强制调整大小后,GCP 托管实例组也不会缩减为 0
【发布时间】:2022-12-21 13:37:00
【问题描述】:

参考this answer,在我的例子中,我有一个带有自动缩放器的 MIG:

  • minNumReplicas:0
  • 从 MIG 实例外部的外部应用程序生成的自定义、每组 Cloud Monitoring 指标。

理论上,这应该允许我缩放到 0。 然而,我的 MIG 的 targetSizerecommendedSize 始终保持在 1,即使我的指标肯定低于利用率目标集。 (我已经测试了 1 和我的 maxNumReplicas 之间的放大和缩小工作)

我什至尝试使用gcloud compute instance-groups managed resize my-mig --size=0 将大小调整为 0。这最初向我显示 targetSize 为 0,而 autoscaler.recommendedSize 继续保持在 1。几秒钟后,targetSize 反弹回 1,我遇到了这个烦人的实例,它不会消失。

这种行为是预期的吗?我如何强制 recommendedSize 为 0(或者本质上我如何使 MIG 下降到 0,这是我设置的 minNumReplicas)?

【问题讨论】:

    标签: google-cloud-platform google-compute-engine autoscaling


    【解决方案1】:

    关于即使在 MIG 中强制调整大小后也无法将比例缩小为 0 的问题,当您希望将指标维持在目标值时,请指定利用率目标。自动缩放器会在指标值高于目标值时创建 VM,并在指标值低于目标值时删除 VM。当您使用源自 VM 的此类指标时,MIG cannot scale to 0,因为自动缩放器需要至少一个 VM 来发布指标值。因此,您不能将比例缩小到 0。在这里您可以阅读更多关于 scale based monitoring metrics 的信息。

    与您的设置一样,creating a custom metric 的要求是:如果自动缩放配置使用组中每个 VM 的数据,请在 MIG 中设置实例,以便每个 VM 导出自定义指标。每个 VM 的导出值必须与 gce_instance 监视的资源相关联.这意味着自定义指标来自 MIG 内的单个实例,这解释了为什么您不能缩小到 0。您无法更改此行为。

    【讨论】:

    • 我目前正在使用自定义指标(独立于 VM 指标),并且已经指定了利用率目标(量表)。当前指标值始终 < 利用率目标值,可以从监控中验证,但始终仍有 1 个 VM 徘徊
    • 由于自动缩放器逐渐添加或删除 VM 的速度与指标高于或低于目标的程度成正比,因此仍有 1 个 VM 徘徊。换句话说,缩放基于 custom metrics 和基于 MIG 中的每个 VM,自动缩放器始终需要至少一个 VM 来发布指标值并且不能缩放到 0。
    • 所以你是说,即使我的自定义指标是在外部发布的,即使 MIG 中有 0 个 VM,它的值仍然可以发布,但是 MIG 仍然不能缩减到 0 个 VM?
    • @chaooder 您在自定义指标中使用了哪些自动缩放信号?
    • @Hector 自动缩放信号是什么意思?我已经根据 custom metric 和特定的仪表利用率目标配置了自动缩放。此自定义指标由 MIG 外部的外部应用程序发送到云监控,具有全局监控资源类型。
    【解决方案2】:

    尽量不要发送任何自定义指标数据来触发缩减为 0,因为收到的任何指标数据(即使是零值的指标)都会将 VM 大小至少保持为 1。

    See my screenshot here

    希望对你有帮助,谢谢

    【讨论】:

      猜你喜欢
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2020-11-07
      • 2012-08-04
      相关资源
      最近更新 更多