GCE 实例组可以根据 Google Cloud PubSub 队列计数或其他异步任务队列(例如 PSQ)进行扩展/缩减吗?
3 回答
是的!
该功能现在处于 alpha 阶段:https ://cloud.google.com/compute/docs/autoscaler/scaling-queue-based
我自己没有尝试过,但是查看文档,看起来可以针对 Pub/Sub 消息队列计数设置自动缩放。
本页 [0] 介绍了如何设置自动扩缩器以根据 Cloud Monitoring 服务提供的标准指标进行扩缩。
本页 [1] 解释了您可以将哪些指标用于自动缩放器。这两个看起来很有用:
pubsub.googleapis.com/subscription/num_outstanding_messages pubsub.googleapis.com/subscription/num_undelivered_messages
[0] https://cloud.google.com/compute/docs/autoscaler/scaling-cloud-monitoring-metrics [1] https://cloud.google.com/monitoring/api/metrics
您不能为此目的使用 pubsub 指标(pubsub.googleapis.com/subscription/num_outstanding_messages 或 pubsub.googleapis.com/subscription/num_undelivered_messages)。根据文档:
用于扩展的有效利用率指标满足以下标准:
标准指标有一个resource_id的标签,每个流的标签值是一个实例的ID。
标准指标描述了实例的繁忙程度,指标值与组中虚拟机实例的数量成比例地增加或减少。
pubsub 指标不符合该标准。
但是,有两种方法可以使用基于 pubsub 的自动缩放:
编写您自己的自定义指标 - 您可以使用 gcloud 监控 api 获取您的 pubsub 时间序列数据。比使用它来计算您自己的自定义监控指标 - 例如 - 上次时间序列值除以您的平均/所需延迟。您可以将此方法与您正在使用的每个异步队列解决方案一起使用。
仍处于 alpha 阶段,有一个 gcloud api 用于基于订阅者的自动缩放:https ://cloud.google.com/compute/docs/autoscaler/scaling-queue-based 。此解决方案仅适用于 google cloud pubsub,您不能将其与其他异步队列解决方案一起使用。