Amazon ECS中的最低健康百分比和最高百分比是多less?

我已经有了Docker和EC2的经验。 但我是新来的ECS。 有人可以帮助我了解这两个参数实际上做了什么,它们的区别和用法。

官方文件说:

最低健康百分比代表在部署期间必须保持RUNNING状态的服务任务数量的下限,以所需任务数量的百分比(四舍五入到最接近的整数)为单位。 此参数使您可以部署而不使用其他群集容量。 例如,如果您的服务具有所需数量的四个任务并且最低健康百分比为50%,则调度程序可能会停止两个现有任务,以在启动两个新任务之前释放群集容量。 不使用负载平衡器的服务的任务在运行状态下被认为是健康的; 如果使用负载平衡器的服务的任务处于RUNNING状态,并且负载平衡器将其托pipe的容器实例报告为健康状态,则认为它们是正常的。 最低健康百分比的默认值在控制台中为50%,AWS CLI,AWS开发工具包和API为100%。

最大百分比参数表示在部署期间允许处于RUNNING或PENDING状态的服务任务数量的上限,以所需任务数量(向下舍入为最接近的整数)的百分比表示。 通过此参数可以定义部署批量大小。 例如,如果您的服务具有所需数量的四个任务并且最大百分比值为200%,那么调度程序可能会在停止四个较早的任务之前启动四个新任务(前提是需要执行此操作的群集资源)。 最大百分比的默认值是200%。

我仍然不清楚这两个参数。

  1. 如果我的服务具有最低的健康百分比,如果我的服务具有所需数量的4个任务并且最低健康百分比为25%,则调度程序将启动/停止多less个现有/新的任务?
  2. 如果我的服务有最大数量的4个任务并且最大百分比值为50%,那么调度程序将启动/停止多less个现有的/新的任务?
  3. 如果我的服务只有一个任务正在运行,那么如何设置这些参数来停止现有任务并运行新任务。

  1. 当期望任务为4,最低健康状态为25%时,在部署期间,ECS允许在开始新任务之前停止除1之外的所有任务
  2. 最大值应该是100+,这样configuration就没有意义了。 但是,如果您有4个期望的任务,最大值为150%,则允许ECS在停止其他任务之前启动2个新任务。
    • 如果要确保在重新部署期间运行的任务不超过1个,则需要将期望值设置为1,最小值设置为0%,最大值设置为100%。
    • 如果你想确保至less有一个任务正在运行,你需要将期望值设置为1,最小值设置为100%,最大值设置为200%。

其他例子。 如果你想要4,最低50%,最高150%。 然后ECS可以决定在部署过程中会做什么。

  • 如果集群没有更多的资源,它可以决定停止2个任务,在新版本中启动2个新任务,等待新任务健康。 然后停止剩下的两个任务,并开始两个新的。
  • 如果集群拥有更多资源,ECS可以决定在停止现有任务之前启动两个新任务。

或者你可以这样看待它。 在重新部署期间,ECS需要在MinimumPercent / 100 *期望和MaximumPercent / 100 *期望任务之间运行。 在这种情况下2-6个任务。