无法放置任务时扩展 ECS EC2 实例

Nat*_*han 5 amazon-web-services amazon-ecs

我正在使用带有Jenkins ECS 插件的Jenkins 代理/从属 ECS 集群。

当作业请求构建节点时,该插件会放置一个 ECS 任务。现在我想根据需求扩展与 ECS 集群关联的 Autoscaling Group 中的 EC2 实例。

  1. 詹金斯经常闲着。在这种情况下,我不希望自动缩放组中有任何实例。
  2. 如果请求节点(因此是 ECS 任务)并且无法放置,我想将 EC2 实例添加到自动缩放组。
  3. 如果实例空闲且在计费小时之前不久,我希望删除该实例。

第 3 点可以通过 EC2 实例上的 cronjob 来完成,该定时检查是否满足条件并删除 EC2 实例。

但是我怎样才能完成 2. 点呢?如果无法放置任务,我将无法创建触发的 cloudwatch 警报。

我怎样才能做到这一点?

Shi*_*his 0

对于第 2 点,解决此问题的一种方法是在没有足够的 cpu 单元来放置新的 jenkins 从站时自动缩放。

您应该使用集群上的 cpu 预留指标来进行扩展。 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#cluster_reservation

  • 这并不能真正解决第 2 点。我希望在无法放置任务时发生缩放事件。不是当它可能无法放置时:原因是,有些任务需要 12GB RAM,这几乎是一个完整的 EC2 实例。如果我按照您的建议进行扩展,我将始终运行一个额外的 EC2 实例。我不想要。 (2认同)