GCE 根据正在运行的实例提供的自定义指标进行自动扩展?

GCE 根据正在运行的实例提供的自定义指标进行自动扩展?

我有一个具有自动扩展功能的托管实例组。

每个实例都会运行一个程序,该程序会轮询远程站点,询问“您有什么工作要我做吗?”如果答案是“没有”,它会休眠几秒钟并重复。我们认为这是一个闲置的例如。否则,它会收到做什么的指令,标记自己忙碌的,完成它该做的事情(可能需要几分钟到几小时),返回结果,然后返回到闲置的

我希望自动缩放器确保始终至少有一个闲置的实例,因此它可以接手任何可用的工作。它不能基于 CPU,因为作业可能会花费大量时间而实际上没有使用太多 CPU,或者它们可能没有足够的并行性来使用所有内核,等等。

如果自动缩放器能够抓取任意指标服务器以获取特定指标,那么生活就会变得简单:每个实例都已在运行 Prometheus 节点导出器,因此它可以导出如下指标,设置为 0 或 1,然后 Prometheus 可以聚合,将总和加 1,并导出为自动缩放器可以使用的指标。​​但这是不可能的。

Google 关于如何使用 Prometheus 指标进行自动扩缩的文档,尽管链接到了 GCE MIG 页面,但只讨论了如何Kubernetes自动缩放,当然这不是我在这里使用的。

我已经考虑过让实例创建一个自定义的 stackdriver 指标并对其进行更新,但如果实例在将其指标更新为 0 之前死亡,它将永远不会被重置,因此自动缩放器将不知道这一点。

这不可能非常困难或非常罕见(要么就是我想不出正确的术语来搜索:()。有什么建议吗?

相关内容