Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

更新Amazon ECS-optimized AMI 上的 Amazon ECS 容器代理

如果您使用Amazon ECS-optimized AMI,则可通过多种方式获取最新版本的 Amazon ECS 容器代理(按建议的顺序显示):

  • 终止您当前的容器实例并启动最新版本的Amazon ECS-optimized Amazon Linux 2 AMI(手动执行,或者通过使用最新的 AMI 更新 Auto Scaling 启动配置来执行)。这将提供全新的容器实例,其中包含最新的经测试和验证的版本的 Amazon Linux、Docker、ecs-init 和 Amazon ECS 容器代理。有关更多信息,请参阅Amazon ECS-Optimized Amazon Linux AMI

  • 使用 SSH 连接到实例,并将 ecs-init 程序包(及其依赖项)更新到最新版本。此操作提供了最新的经测试和验证的版本的 Docker 和 ecs-init(它们在 Amazon Linux 存储库中提供)以及最新版本的 Amazon ECS 容器代理。有关更多信息,请参阅更新Amazon ECS-optimized AMI 上的 ecs-init 程序包

  • 使用 UpdateContainerAgent API 操作更新容器代理(通过控制台执行,或者通过 AWS CLI 或 AWS 开发工具包执行)。有关更多信息,请参阅使用 UpdateContainerAgent API 操作更新 Amazon ECS 容器代理

注意

代理更新不适用于 Windows 容器实例。我们建议您启动新的容器实例来更新您的 Windows 集群中的代理版本。

更新Amazon ECS-optimized AMI 上的 ecs-init 程序包

  1. 通过 SSH 登录到容器实例。有关更多信息,请参阅 连接到您的容器实例

  2. 使用以下命令更新 ecs-init 包。

    [ec2-user ~]$ sudo yum update -y ecs-init

    注意

    将立即更新 ecs-init 程序包和 Amazon ECS 容器代理。但是,更新版本的 Docker 直至 Docker 守护程序重新启动后才会加载。通过重启实例或通过在您的实例上运行以下命令来重新启动:

    • Amazon ECS-optimized Amazon Linux 2 AMI:

      sudo systemctl restart docker
    • Amazon ECS-optimized Amazon Linux AMI:

      sudo service docker restart && sudo start ecs

使用 UpdateContainerAgent API 操作更新 Amazon ECS 容器代理

重要

此更新过程仅在Amazon ECS-optimized AMI 的 Linux 变体上受支持。有关运行其他操作系统的容器实例,请参阅手动更新 Amazon ECS 容器代理(适用于非Amazon ECS-Optimized AMI)

注意

使用 UpdateContainerAgent API 操作的代理更新不适用于 Windows 容器实例。我们建议您启动新的容器实例来更新您的 Windows 集群中的代理版本。

要在Amazon ECS-optimized AMI 上从 v1.0.0 之前的版本更新 Amazon ECS 代理版本,建议您终止当前容器实例并使用最新的 AMI 版本启动新实例。使用预览版的任何容器实例都应停用并更换为最新的 AMI。有关更多信息,请参阅启动 Amazon ECS 容器实例

更新过程在您请求代理更新时开始(通过控制台执行,或者通过 AWS CLI 或 AWS 开发工具包执行)。Amazon ECS 将对照最新发布的代理版本检查您当前的代理版本,如果有可用的更新,则更新过程将按以下流程图所示的方式进行。如果更新不可用(例如代理已在运行最新版本),则会返回 NoUpdateAvailableException


                        代理更新流程

上面显示的更新过程的各个阶段如下所示:

PENDING

代理更新可用,并且更新过程已开始。

STAGING

代理已开始下载代理更新。如果代理无法下载更新,或者更新的内容不正确或已损坏,代理将发送失败通知,并且更新将变为 FAILED 状态。

STAGED

代理下载已完成,且代理内容已经过验证。

UPDATING

ecs-init 服务已重新启动,并且选取了新代理版本。如果代理出于某个原因无法重新启动,更新将变为 FAILED 状态;否则,代理将向 Amazon ECS 发送更新已完成的信号。

在控制台中更新Amazon ECS-optimized AMI 上的 Amazon ECS 容器代理

注意

代理更新不适用于 Windows 容器实例。我们建议您启动新的容器实例来更新您的 Windows 集群中的代理版本。

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. Clusters 页面上,选择托管容器实例或要检查的实例的集群。

  3. Cluster : cluster_name 页面上,选择 ECS Instances

  4. 选择要更新的容器实例。

  5. Container Instance 页面上,选择 Update agent

使用 AWS CLI 更新Amazon ECS-optimized AMI 上的 Amazon ECS 容器代理

注意

使用 UpdateContainerAgent API 操作的代理更新不适用于 Windows 容器实例。我们建议您启动新的容器实例来更新您的 Windows 集群中的代理版本。

  • 使用以下命令更新容器实例上的 Amazon ECS 容器代理:

    aws ecs update-container-agent --cluster cluster_name --container-instance container_instance_id