Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

更新针对 Amazon ECS 优化过的 AMI 上的 Amazon ECS 容器代理

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

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

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

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

更新针对 Amazon ECS 优化过的 AMI 上的 ecs-init

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

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

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

    注意

    将立即更新 ecs-init 程序包和 Amazon ECS 容器代理;但不会加载更新版本的 Docker,直至重新启动 Docker 守护程序 (通过重新启动实例,或者通过运行 sudo service docker restart 重新启动 Docker,然后运行 sudo start ecs 以重新启动容器代理)。

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

重要

此更新过程仅在针对 Amazon ECS 优化过的 AMI 上受支持。有关运行其他操作系统的容器实例,请参阅手动更新 Amazon ECS 容器代理(适用于没有针对 Amazon ECS 优化过的 AMI)

要在经 Amazon ECS 优化的 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 优化过的 AMI 上的 Amazon ECS 容器代理

  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 优化过的 AMI 上的 Amazon ECS 容器代理

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

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