Amazon ECS 服务参数的最佳实践 - Amazon Elastic Container Service

Amazon ECS 服务参数的最佳实践

为确保应用程序不会停机,按照如下部署过程操作:

  1. 启动新的应用程序容器,同时保持现有容器运行。

  2. 检查新容器是否正常运行。

  3. 停止旧容器。

根据您的部署配置和集群中空闲的未预留空间量,可能需要多轮操作完成此操作,才能将所有旧任务替换为新任务。

您可以使用两个服务配置选项修改数字:

  • minimumHealthyPercent:100%(默认值)

    服务在部署期间必须保持在 RUNNING 状态的任务数下限。其表示为向上取整到最近整数的 desiredCount 的百分比。此参数使您不必使用额外的集群容量就能部署。

  • maximumPercent:200%(默认值)

    服务在部署期间允许处于 RUNNINGPENDING 状态的任务数上限。其表示为向下取整到最近整数的 desiredCount 的百分比。

示例:默认配置选项

考虑以下服务:它有六个任务,部署在一个拥有总共可容纳八个任务的空间的集群中。默认的服务配置选项不允许部署下降到低于六个所需任务的 100%。

部署过程如下:

  1. 目标是替换这六个任务。

  2. 计划程序会启动两个新任务,因为默认设置要求有六个正在运行的任务。

    现在有六个现有任务和两个新任务。

  3. 计划程序停止两个现有任务。

    现在有四个现有任务和两个新任务。

  4. 计划程序启动另外两个新任务。

    现在有四项现有任务和四项新任务。

  5. 计划程序关闭两个现有任务。

    现在有两个现有任务和四个新任务。

  6. 计划程序启动另外两个新任务。

    现在有两个现有任务和六个新任务

  7. 计划程序关闭最后两个现有任务。

    现在有六个新任务。

在上面的示例中,如果您使用选项的默认值,则每启动一个新任务都有 2.5 分钟的等待时间。此外,负载均衡器可能需要等待 5 分钟才能停止旧任务。

示例:修改 minimumHealthyPercent

您可以通过将 minimumHealthyPercent 值设置为 50% 来加快部署速度。

考虑以下服务:它有六个任务,部署在一个拥有总共可容纳八个任务的空间的集群中。部署过程如下:

  1. 目标是替换这六个任务。

  2. 计划程序停止三个现有任务。

    仍然有三个符合 minimumHealthyPercent 值的现有任务在运行。

  3. 计划程序启动五个新任务。

    现在有三个现有任务和五个新任务。

  4. 计划程序停止剩余的三个任务。

    现在有五个新任务

  5. 计划程序启动最后一个新任务。

    现在有六个新任务。

示例:修改集群可用空间

您还可以添加额外的可用空间,以便可以运行额外的任务。

考虑以下服务:它有六个任务,部署在一个拥有总共可容纳十个任务的空间的集群中。部署过程如下:

  1. 目标是替换现有任务。

  2. 计划程序停止三个现有任务。

    现在有三个现有任务。

  3. 计划程序启动六个新任务。

    现在有三个现有任务和六个新任务

  4. 计划程序停止三个现有任务。

    现在有六个新任务。

建议

当您的任务闲置一段时间并且利用率不高时,请使用以下值作为服务配置选项。

  • minimumHealthyPercent:50%

  • maximumPercent:200%