更新外部实例上的 AWS Systems Manager 代理和 Amazon ECS 容器代理
运行 Amazon ECS 工作负载时,您的本地部署服务器或 VM 必须同时运行 AWS Systems Manager 代理 (SSM Agent) 和 Amazon ECS 容器代理。AWS 在添加或更新任何功能时发布这些代理的新版本。如果您的外部实例正在使用任一代理的早期版本,则可以使用以下过程更新。
更新外部实例上的 SSM Agent
AWS Systems Manager 建议您自动完成更新实例上的 SSM Agent 的过程。它们提供了多种自动更新的方法。有关更多信息,请参阅 AWS Systems Manager 用户指南中的自动更新 SSM Agent。
更新外部实例上的 Amazon ECS 代理
在您的外部实例上,Amazon ECS 容器代理将通过升级 ecs-init
程序包更新。更新 Amazon ECS 代理不会中断正在运行的任务或服务。Amazon ECS在每个区域的 Amazon S3 存储桶中提供 ecs-init
程序包和签名文件。从 ecs-init
版本 1.52.1-1
开始,Amazon ECS 提供单独的 ecs-init
程序包,具体取决于您的外部实例使用的操作系统和系统体系结构。
可以使用下表确定 ecs-init
程序包,您应该根据外部实例使用的操作系统和系统体系结构下载该程序包。
注意
您可以使用以下命令确定外部实例使用的操作系统和系统体系结构。
cat /etc/os-release uname -m
操作系统(体系结构) | ecs-init 程序包 |
---|---|
CentOS 7 (x86_64) CentOS 8 (x86_64) CentOS Stream 9 (x86_64) SUSE Enterprise Server 15 (x86_64) RHEL 7 (x86_64) RHEL 8 (x86_64) |
|
CentOS 7 (aarch64) CentOS 8 (aarch64) CentOS Stream 9 (aarch64) RHEL 7 (aarch64) |
|
Debian 9 (x86_64) Debian 10 (x86_64) Debian 11 (x86_64) Debian 12 (x86_64) Ubuntu 18 (x86_64) Ubuntu 20 (x86_64) Ubuntu 22 (x86_64) Ubuntu 24 (x86_64) |
|
Debian 9 (aarch64) Debian 10 (aarch64) Debian 11 (aarch64) Debian 12 (aarch64) Ubuntu 18 (aarch64) Ubuntu 20 (aarch64) Ubuntu 22 (aarch64) Ubuntu 24 (aarch64) |
|
请按照以下步骤更新 Amazon ECS 代理。
要更新 Amazon ECS 代理
-
确认您正在运行的 Amazon ECS 代理版本。
curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
-
下载适用于您的操作系统和系统体系结构的
ecs-init
程序包。Amazon ECS在每个区域的 Amazon S3 存储桶中提供ecs-init
程序包文件。确保将命令中的<region>
标识符替换为地理位置最接近的区域名称(例如,us-west-2
)。amazon-ecs-init-latest.x86_64.rpm
curl -o amazon-ecs-init.rpm https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.x86_64.rpmamazon-ecs-init-latest.aarch64.rpm
curl -o amazon-ecs-init.rpm https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.aarch64.rpmamazon-ecs-init-latest.amd64.deb
curl -o amazon-ecs-init.deb https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.amd64.debamazon-ecs-init-latest.arm64.deb
curl -o amazon-ecs-init.deb https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.arm64.deb -
(可选)用 PGP 签名验证
ecs-init
程序包文件。-
下载并安装 GnuPG。有关 GnuPG 的更多信息,请参阅 GnuPG 网站
。对于 Linux 系统,使用您的 Linux 风格的程序包管理器安装 gpg
。 -
检索 Amazon ECS PGP 公钥。
gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
-
下载
ecs-init
程序包签名文件。签名是存储在扩展名为.asc
的文件中的 ASCII 分离 PGP 签名。Amazon ECS在每个区域的 Amazon S3 存储桶中提供签名文件。确保将命令中的<region>
标识符替换为地理位置最接近的区域名称(例如,us-west-2
)。amazon-ecs-init-latest.x86_64.rpm
curl -o amazon-ecs-init.rpm.asc https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.x86_64.rpm.ascamazon-ecs-init-latest.aarch64.rpm
curl -o amazon-ecs-init.rpm.asc https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.aarch64.rpm.ascamazon-ecs-init-latest.amd64.deb
curl -o amazon-ecs-init.deb.asc https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.amd64.deb.ascamazon-ecs-init-latest.arm64.deb
curl -o amazon-ecs-init.deb.asc https://s3.
<region>
.amazonaws.com/amazon-ecs-agent-<region>
/amazon-ecs-init-latest.arm64.deb.asc -
用密钥验证
ecs-init
程序包文件。对于
rpm
程序包gpg --verify amazon-ecs-init.rpm.asc ./amazon-ecs-init.rpm
对于
deb
程序包gpg --verify amazon-ecs-init.deb.asc ./amazon-ecs-init.deb
预期的输出如下所示:
gpg: Signature made Fri 14 May 2021 09:31:36 PM UTC gpg: using RSA key 50DECCC4710E61AF gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB 346F 50DE CCC4 710E 61AF
-
-
安装
ecs-init
软件包。对于 CentOS 7、CentOS 8 和 RHEL 7 上的
rpm
程序包sudo yum install -y ./amazon-ecs-init.rpm
对于SUSE 企业服务器 15 上的
rpm
程序包sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
对于
deb
程序包sudo dpkg -i ./amazon-ecs-init.deb
-
重新启动
ecs
服务。sudo systemctl restart ecs
-
验证 Amazon ECS 代理版本是否已更新。
curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool