使用控制台更新服务 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用控制台更新服务

您可以使用新的 Amazon ECS 体验更新 Amazon ECS 服务。当前服务配置已预先填充。您可以更新任务定义、所需任务计数、容量提供程序策略、平台版本和部署配置;或者这些的任意组合。

使用新控制台时请考虑以下事项:

  • 只有使用滚动更新ECS)部署类型的服务才能使用新的 Amazon ECS 体验进行更新。

  • 目前,控制台仅支持目标跟踪扩展策略。要使用分步扩缩,请切换到经典控制台。

  • 目前,控制台仅支持副本服务类型。要使用进程守护程序服务类型,请切换到经典控制台。

  • 如果要在任务定义中更改容器使用的端口,您可能需要更新容器实例的安全组以使用更新后的端口。

  • Amazon ECS 不会自动更新与 Elastic Load Balancing 负载均衡器或 Amazon ECS 容器实例关联的安全组。

  • 如果您的服务使用一个负载均衡器,则无法更改创建该负载均衡器时为服务定义的负载均衡器配置。如果您更新服务的任务定义,则创建服务时指定的容器名称和容器端口必须保留在任务定义中。

  • 要更改与服务负载均衡器配置关联的负载均衡器名称、容器名称或容器端口,您必须创建新服务。

您可以更新现有服务以更改一些服务配置参数,如该服务维护的任务数、任务使用哪个任务定义,或者,如果您的任务使用的是 Fargate 启动类型,也可以更改服务使用的平台版本。使用 Linux 平台版本的服务无法更新为使用 Windows 平台版本,反之亦然。如果您有需要更多容量的应用程序,则可以扩展服务。如果您有要缩减的未使用容量,则可以减少服务中的所需任务的数量并释放资源。

如果要为任务使用更新的容器映像,则可以使用该映像创建新的任务定义修订版本,并使用控制台中的 force new deployment (强制新部署) 选项将其部署到服务。

服务计划程序将使用最小正常百分比和最大百分比参数(在服务的部署配置中)确定部署策略。

如果服务使用滚动更新 (ECS) 部署类型,最小正常百分比以预期任务数的百分比形式表示部署期间必须保持在 RUNNING 状态的服务中的任务数的下限(向上取整到最近的整数)。如果服务包含使用 EC2 启动类型的任务,则在任何容器实例处于 DRAINING 状态时,此参数也适用。可以使用此参数进行部署,而无需使用额外的集群容量。例如,如果您的服务的预期任务数为 4,最小正常百分比为 50%,则计划程序可能在开始两个新任务之前停止两个现有任务以释放集群容量。服务任务的状态如果为 RUNNING,而且未使用负载均衡器,即为运行正常。如果使用负载均衡器的服务任务处于 RUNNING 状态,并且该负载均衡器将其报告为正常,则这些服务任务被视为正常。最小正常百分比的默认值为 100%。

如果服务使用滚动更新(ECS)部署类型,则最大百分比参数将以预期任务数的百分比形式(向下取整到最近的整数)表示部署期间允许处于 PENDINGRUNNINGSTOPPING 状态的服务中任务数的上限。如果服务包含使用 EC2 启动类型的任务,则在任何容器实例处于 DRAINING 状态时,此参数也适用。可以使用此参数定义部署批次大小。例如,如果您的服务的预期任务数为 4,最大百分比值为 200%,则计划程序可能在停止 4 个旧任务之前开始 4 个新任务。这样做的前提是具有执行此操作所需的集群资源。最大百分比的默认值为 200%。

当服务计划程序在更新期间替换某个任务时,服务首先会从负载均衡器(如果使用了)中删除此任务并等待连接耗尽。然后,将向此任务中运行的容器发出 docker stop 的等效项。这将产生 SIGTERM 信号和 30 秒的超时,此后,将发送 SIGKILL 并强制停止容器。如果容器正常处理了 SIGTERM 信号并在收到信号后的 30 秒内退出,则不会发送任何 SIGKILL 信号。服务计划程序将启动并停止您的最小正常百分比和最大百分比设置定义的任务。

重要

如果要在任务定义中更改容器使用的端口,您可能需要更新容器实例的安全组以使用更新后的端口。

如果您更新服务的任务定义,则创建服务时指定的容器名称和容器端口必须保留在任务定义中。

要更改与服务负载均衡器配置关联的容器名称或容器端口,您必须创建新服务。

Amazon ECS 不会自动更新与 Elastic Load Balancing 负载均衡器或 Amazon ECS 容器实例关联的安全组。

更新服务(Amazon ECS 控制台)
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. Clusters(集群)页面上,选择集群。

  3. Cluster overview(集群概述)页面上,选择服务,然后选择 Update(更新)。

  4. 对于任务定义,选择要使用的任务定义族和修订。

    重要

    控制台验证所选任务定义系列和修订版与定义的计算配置兼容。如果收到警告,请验证任务定义兼容性和选定的计算配置。

  5. 要更改计算选项,请展开 Deployment options(部署选项)、Compute configuration(计算配置),然后执行以下操作:

    1. 对于 Amazon Fargate 上的服务,请在 Platform version(平台版本)中选择新版本。

    2. 对于使用容量提供程序策略的服务,请在 capacity provider strategy(容量提供程序策略)中选择新的容量提供程序。

      使用 自动扩缩组容量提供程序的服务无法更新为使用 Fargate 容量提供程序,反之亦然。

    3. 要让您的服务开始新的部署,请选择 Force new deployment(强制执行新部署)。

      Force new deployment(强制执行新部署)选项可停止所有当前正在运行的任务,然后使用更新的配置启动新任务

      1. 对于Min running tasks(最小运行任务数),输入服务中在部署期间必须保持 RUNNING 状态的任务数的下限,以所需任务数的百分比表示(四舍五入到最接近的整数)。有关更多信息,请参阅部署配置

      2. 对于 Max running tasks(最大运行任务数),输入部署期间 RUNNINGPENDING 状态下允许的服务中任务数的上限,以所需任务数的百分比表示(四舍五入到最接近的整数)。

  6. 要配置 Amazon ECS 如何检测和处理部署故障,请展开 Deployment failure detection(部署故障检测),然后选择您的选项。

    1. 要在任务无法启动时停止部署,请选择 Use the Amazon ECS deployment circuit breaker(使用 Amazon ECS 部署断路器)。

      要让软件在部署断路器将部署设置为故障状态时自动将部署回滚到上次完成的部署状态,请选择 Rollback on failure(故障时回滚)。

    2. 要根据应用程序指标停止部署,请选择 Use CloudWatch alarms(使用 CloudWatch 警报)。然后,从 CloudWatch alarm names(CloudWatch 警报名称)中选择警报。要创建新警报,请选择 Create new alarm(创建新警报)。

      要让软件在 CloudWatch 警报将部署设置为故障状态时自动将部署回滚到上次完成的部署状态,请选择 Rollback on failure(故障时回滚)。

  7. 要配置服务自动扩缩,请展开 Service auto scaling(服务自动扩缩),然后指定以下参数。

    1. 要使用服务自动扩缩,请选择 Service auto scaling(服务自动扩缩)。

    2. 对于 Minimum number of tasks(最小任务数),输入供 Service Auto Scaling 使用的任务数的下限。所需计数不会低于此计数。

    3. 对于 Maximum number of tasks(最大任务数),输入供 Service Auto Scaling 使用的任务数的上限。所需计数不会高于此计数。

    4. 对于 Scaling policy type (扩展策略类型) 选择 Target tracking (目标跟踪)。

    5. 对于 Policy name(策略名称),请输入策略的名称。

    6. 对于 ECS service metric(ECS 服务指标),选择以下指标之一:

      • ECSServiceAverageCPUUtilization:服务的平均 CPU 使用率。

      • ECSServiceAverageMemoryUtilization:服务的平均内存使用率。

      • ALBRequestCountPerTarget:应用程序负载均衡器目标组中每个目标完成的请求数。

        指标需要一个应用程序负载均衡器以及应用程序负载均衡器的目标组。

    7. 对于 Target value(目标值),输入服务为所选指标保留的百分比值。

    8. 对于 Scale-out cooldown period(横向扩展冷却时间),输入横向扩展活动结束且没有发生其他横向扩展的时间(以秒为单位)。

    9. 对于 Scale-in cooldown period(横向缩减冷却时间),输入横向缩减活动结束且没有发生其他横向缩减的时间(以秒为单位)。

    10. 要防止策略执行缩减活动,请选择 Turn off scale-in(关闭横向缩减)。

  8. (可选)为了帮助识别您的服务,请展开 Tags(标签)部分,然后配置您的标签。

    • [添加标签] 选择 Add tag(添加标签),然后执行以下操作:

      • 对于 Key(键),输入键名称。

      • 对于 Value(值),输入键值。

    • [删除标签] 在标签旁,选择 Remove tag (删除标签)

  9. 选择 Update(更新)。