更新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
程序包
-
通过 SSH 登录到容器实例。有关更多信息,请参阅 连接到您的容器实例。
-
使用以下命令更新
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 集群中的代理版本。
-
在 https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。
-
在 Clusters 页面上,选择托管容器实例或要检查的实例的集群。
-
在 Cluster :
cluster_name
页面上,选择 ECS Instances。 -
选择要更新的容器实例。
-
在 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-instancecontainer_instance_id