Amazon ECS 服务参数的最佳实践
为确保应用程序不会停机,按照如下部署过程操作:
-
启动新的应用程序容器,同时保持现有容器运行。
-
检查新容器是否正常运行。
-
停止旧容器。
根据您的部署配置和集群中空闲的未预留空间量,可能需要多轮操作完成此操作,才能将所有旧任务替换为新任务。
您可以使用两个服务配置选项修改数字:
-
minimumHealthyPercent
:100%(默认值)服务在部署期间必须保持在
RUNNING
状态的任务数下限。其表示为向上取整到最近整数的desiredCount
的百分比。此参数使您不必使用额外的集群容量就能部署。 -
maximumPercent
:200%(默认值)服务在部署期间允许处于
RUNNING
或PENDING
状态的任务数上限。其表示为向下取整到最近整数的desiredCount
的百分比。
示例:默认配置选项
考虑以下服务:它有六个任务,部署在一个拥有总共可容纳八个任务的空间的集群中。默认的服务配置选项不允许部署下降到低于六个所需任务的 100%。
部署过程如下:
-
目标是替换这六个任务。
-
计划程序会启动两个新任务,因为默认设置要求有六个正在运行的任务。
现在有六个现有任务和两个新任务。
-
计划程序停止两个现有任务。
现在有四个现有任务和两个新任务。
-
计划程序启动另外两个新任务。
现在有四项现有任务和四项新任务。
-
计划程序关闭两个现有任务。
现在有两个现有任务和四个新任务。
-
计划程序启动另外两个新任务。
现在有两个现有任务和六个新任务
-
计划程序关闭最后两个现有任务。
现在有六个新任务。
在上面的示例中,如果您使用选项的默认值,则每启动一个新任务都有 2.5 分钟的等待时间。此外,负载均衡器可能需要等待 5 分钟才能停止旧任务。
示例:修改 minimumHealthyPercent
您可以通过将 minimumHealthyPercent
值设置为 50% 来加快部署速度。
考虑以下服务:它有六个任务,部署在一个拥有总共可容纳八个任务的空间的集群中。部署过程如下:
-
目标是替换这六个任务。
-
计划程序停止三个现有任务。
仍然有三个符合
minimumHealthyPercent
值的现有任务在运行。 -
计划程序启动五个新任务。
现在有三个现有任务和五个新任务。
-
计划程序停止剩余的三个任务。
现在有五个新任务
-
计划程序启动最后一个新任务。
现在有六个新任务。
示例:修改集群可用空间
您还可以添加额外的可用空间,以便可以运行额外的任务。
考虑以下服务:它有六个任务,部署在一个拥有总共可容纳十个任务的空间的集群中。部署过程如下:
-
目标是替换现有任务。
-
计划程序停止三个现有任务。
现在有三个现有任务。
-
计划程序启动六个新任务。
现在有三个现有任务和六个新任务
-
计划程序停止三个现有任务。
现在有六个新任务。
建议
当您的任务闲置一段时间并且利用率不高时,请使用以下值作为服务配置选项。
-
minimumHealthyPercent
:50% -
maximumPercent
:200%