Amazon ECS中最低健康百分比和最大百分比是多少

时间:2016-11-21 23:13:42

标签: amazon-web-services docker amazon-ec2 amazon-ecs

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

Official Docs说:

  

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

     

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

我仍然没有清楚地了解这两个参数。

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

1 个答案:

答案 0 :(得分:22)

  1. 如果期望的任务为4,最低生命值为25%,那么在部署期间,ECS可以在启动新任务之前停止除1之外的所有任务。
  2. 最大值应为100+,以便配置没有意义。但如果您有4个所需任务且最大值为150%,那么ECS可以在停止其他任务之前启动2个新任务。
    • 如果要确保在重新部署期间运行的任务不会超过1个,则需要将所需的设置为1,最小值设置为0%,最大值设置为100%。
    • 如果您想确保始终至少有1个任务正在运行,您需要将所需的任务设置为1,最小为100%,最高为200%。
  3. 其他例子。如果您需要4,最低50%,最高150%。然后,ECS可以决定在部署期间将执行的操作。

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

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