我想知道当一个Fargate服务有多个升级策略时,它是如何优先考虑升级策略的。
假设以下两种配置:
- 当SQS中的消息数超过100时,第一个刻度
- 业务CPU超过70%时第二次缩放
风景
我们的ECS中只有一个启动类型为FARGATE的服务。在服务中,我们只运行一个任务,该任务只包含一个与应用程序对应的容器。
触发cloudwatch警报,因为消息数量超过100条消息,因此自动缩放也将被触发并向服务添加1个任务。就在那一刻,CPU服务增加,因为外部服务在API中发出大量请求,因此触发自动缩放并添加另一个任务。
如果消息数少于100,但CPU仍在增加,会发生什么?由SQS触发的策略添加的任务怎么办?无论如何它都会删除任务?它们是相互补充的,还是相互独立的,这背后没有逻辑吗?
如果CPU占用率低于70%,则新增的任务将被移除。
文档说:
但是,我们建议在使用目标跟踪缩放策略和步进缩放策略时要谨慎,因为这些策略之间的冲突可能会导致不良行为。例如,如果步长扩展策略在目标跟踪策略准备好扩展之前启动了一个扩展活动,则该扩展活动将不会被阻塞。在伸缩活动完成后,目标跟踪策略可以指示可伸缩目标再次伸缩。