Docker群集模式W / Terraform数字海洋负载平衡。 如何自动缩放?

所以我已经能够通过这里的这篇文章回答我的大部分问题

https://knpw.rs/blog/docker-swarm-terraform/

我的问题是从本文结束的时候开始,我该如何根据CPU使用率networking使用等指标进行自动扩展

例如,如果我的CPU使用率在所有节点上高于70%,则创build一个新实例,如果CPU使用率低于30%,则销毁一个实例。 当然,这些必须是持续使用的,就像所有使用超过70%的CPU使用超过5分钟的节点一样。

我做了一些研究,但不是很清楚。 例如, Digital Ocean有一个监控服务,如果CPU使用率exception高 (或networking负载),您可以根据您设置的阈值向您发送电子邮件问题是 他们没有WebHook的支持 ,所以我不能发送这些信号到我的应用程序。

我的一个想法是为这些通知设置一个特殊的电子邮件,并检查电子邮件。 基于电子邮件的回应,我然后创build一个修改的terraform文件和'terraform apply'它来修改基础设施?

我不确定这是否是好的forms, 因为terraform的angular度是代码作为基础设施,但是如果基础设施被devise为创build新的实例并基于CPU使用情况或networking使用情况一直销毁实例,我不知道如何你在terraform中正确传达了这个概念?

任何指向正确的方向的赞赏,我很坚持在这一点上转向。 也许terraform不适合这种types的设置?

我相信这个问题与Digital Ocean无关。 您可以为Digital Ocean构build的解决scheme可以适用于所有其他云提供商,只要它们提供创build/销毁节点的API即可。

所以要么切换到内置自动扩展的AWS,要么build立自己的解决scheme。 这是很多工作,但不难设立。 您需要像监视系统一样对群集有完整的可见性,该监视系统跟踪节点registry/发现中的所有群集节点,然后收集度量标准并触发警报。

您可以configuration警报系统以运行您的Terraform作业,完善的剧本,通过HTTP API触发Jenkins作业,…将根据指标扩展/缩小基础架构。