更新外部实例上的 Amazon Systems Manager 代理和 Amazon ECS 容器代理 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

更新外部实例上的 Amazon Systems Manager 代理和 Amazon ECS 容器代理

运行 Amazon ECS 工作负载时,您的本地部署服务器或 VM 必须同时运行 Amazon Systems Manager 代理 (SSM Agent) 和 Amazon ECS 容器代理。Amazon 在添加或更新任何功能时发布这些代理的新版本。如果您的外部实例正在使用任一代理的早期版本,则可以使用以下过程更新。

更新外部实例上的 SSM Agent

Amazon Systems Manager 建议您自动完成更新实例上的 SSM Agent 的过程。它们提供了多种自动更新的方法。有关更多信息,请参阅 Amazon 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)

SUSE Enterprise Server 15 (x86_64)

RHEL 7 (x86_64)

RHEL 8 (x86_64)

amazon-ecs-init-latest.x86_64.rpm

CentOS 7 (aarch64)

CentOS 8 (aarch64)

RHEL 7 (aarch64)

amazon-ecs-init-latest.aarch64.rpm

Debian 9 (x86_64)

Debian 10 (x86_64)

Ubuntu 18 (x86_64)

Ubuntu 20 (x86_64)

amazon-ecs-init-latest.amd64.deb

Debian 9 (aarch64)

Debian 10 (aarch64)

Ubuntu 18 (aarch64)

Ubuntu 20 (aarch64)

amazon-ecs-init-latest.arm64.deb

请按照以下步骤更新 Amazon ECS 代理。

要更新 Amazon ECS 代理

  1. 确认您正在运行的 Amazon ECS 代理版本。

    curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
  2. 下载适用于您的操作系统和系统体系结构的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.rpm

    amazon-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.rpm

    amazon-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.deb

    amazon-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
  3. (可选)用 PGP 签名验证 ecs-init 程序包文件。

    1. 下载并安装 GnuPG。有关 GnuPG 的更多信息,请参阅 GnuPG 网站。对于 Linux 系统,使用您的 Linux 风格的程序包管理器安装 gpg

    2. 检索 Amazon ECS PGP 公钥。

      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
    3. 下载 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.asc

      amazon-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.asc

      amazon-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.asc

      amazon-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
    4. 用密钥验证 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
  4. 安装 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
  5. 重新启动 ecs 服务。

    sudo systemctl restart ecs
  6. 验证 Amazon ECS 代理版本是否已更新。

    curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool