安装 Amazon ECS 容器代理 - Amazon Elastic Container Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

安装 Amazon ECS 容器代理

如果容器实例不是使用Amazon ECS-optimized AMI 启动的,则可使用以下过程之一手动安装 Amazon ECS 容器代理。Amazon ECS 容器代理包含在Amazon ECS-optimized AMI 中且不需要安装。

注意

ECS 和 Docker 服务的systemd单位都有一个 指令,可在启动这两个服务之前等待 cloud-init 完成。在您的 cloud-init 用户数据完成运行之前,Amazon EC2 过程不会被视为已完成。因此,通过 Amazon EC2 用户数据启动 ECS 或 Docker 可能会导致死锁。要使用 Amazon EC2 用户数据启动容器代理,您可以使用 systemctl enable --now --no-block ecs.service.

在 Amazon ECS EC2 实例上安装 Amazon Linux 2 容器代理

要使用 Amazon ECS 命令在 Amazon Linux 2 EC2 实例上安装 amazon-linux-extras 容器代理,请使用以下步骤。

在 Amazon ECS EC2 实例上安装 Amazon Linux 2 容器代理

  1. 启动一个 Amazon Linux 2 EC2 实例,该实例具有允许访问 IAM 的 Amazon ECS. 角色。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色.

  2. 连接到您的 实例。

  3. 禁用 docker Amazon Linux 额外存储库。ecsAmazon Linux 额外存储库附带有自己的 Docker 版本,因此必须禁用 docker 额外版本以避免以后出现任何潜在冲突。这可确保您始终使用 Amazon ECS 希望您用于特定版本的容器代理的 Docker 版本。

    [ec2-user ~]$ sudo amazon-linux-extras disable docker
  4. 安装并启用 ecs Amazon Linux 额外存储库。

    [ec2-user ~]$ sudo amazon-linux-extras install -y ecs; sudo systemctl enable --now ecs
  5. (可选) 您可以利用代理自检 API 验证代理是否正在运行并查看有关新容器实例的一些信息。有关更多信息,请参阅Amazon ECS 容器代理自检.

    [ec2-user ~]$ curl -s http://localhost:51678/v1/metadata | python -mjson.tool
    注意

    如果您未获得响应,请确保在启动实例时已关联 Amazon ECS 容器实例 IAM 角色。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色.

在 Amazon ECS EC2 实例上安装 Amazon Linux AMI 容器代理

要使用 Amazon YUM 存储库在 Amazon ECS EC2 实例上安装 Amazon Linux AMI 容器代理,请使用以下步骤。

在 Amazon ECS EC2 实例上安装 Amazon Linux AMI 容器代理

  1. 启动一个 Amazon Linux AMI EC2 实例,该实例具有允许访问 IAM 的 Amazon ECS. 角色。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色.

  2. 连接到您的 实例。

  3. 安装 ecs-init 软件包。有关 的更多信息ecs-init,请参阅 上的GitHub源代码

    [ec2-user ~]$ sudo yum install -y ecs-init
  4. 启动 Docker 守护程序。

    [ec2-user ~]$ sudo service docker start

    输出:

    Starting cgconfig service:                                 [  OK  ]
    Starting docker:	                                   [  OK  ]
  5. 启动 ecs-init upstart 作业。

    [ec2-user ~]$ sudo start ecs

    输出:

    ecs start/running, process 2804
  6. (可选) 您可以利用代理自检 API 验证代理是否正在运行并查看有关新容器实例的一些信息。有关更多信息,请参阅Amazon ECS 容器代理自检.

    [ec2-user ~]$ curl -s http://localhost:51678/v1/metadata | python -mjson.tool

在非Amazon ECS EC2 实例上安装 Amazon Linux 容器代理

要在非 Amazon ECS EC2 实例上安装 Amazon Linux 容器代理,您可以从区域性 S3 存储桶之一或 Docker Hub 下载代理。如果您从区域性 S3 存储桶之一下载,则可以选择使用 PGP 签名来验证容器代理的有效性。

重要

从 Docker Hub 下载 ECS 代理将受 Docker Hub 速率限制的约束。可以直接从 Amazon S3 而不是 Docker Hub 下载 ECS 代理,以避免速率限制。有关更多信息,请参阅 Docker Hub - 下载速率限制

注意

使用非 Amazon Linux 时AMI,您的Amazon EC2实例需要对cgroupfs驱动程序cgroup的支持,以便 ECS 代理支持任务级别资源限制。有关更多信息,请参阅 上的 GitHubECS 代理

下面按区域列出了最新的 Amazon ECS 容器代理文件,以供参考。

区域 区域名称 容器代理 容器代理签名
us-east-2 美国东部(俄亥俄州) ECS 容器代理 PGP 签名
us-east-1 美国东部(弗吉尼亚北部) ECS 容器代理 PGP 签名
us-west-1 美国西部(加利福尼亚北部) ECS 容器代理 PGP 签名
us-west-2 美国西部(俄勒冈) ECS 容器代理 PGP 签名
ap-east-1 亚太地区(香港) ECS 容器代理 PGP 签名
ap-northeast-1 亚太区域(东京) ECS 容器代理 PGP 签名
ap-northeast-2 亚太区域(首尔) ECS 容器代理 PGP 签名
ap-south-1 亚太地区(孟买) ECS 容器代理 PGP 签名
ap-southeast-1 亚太区域(新加坡) ECS 容器代理 PGP 签名
ap-southeast-2 亚太区域(悉尼) ECS 容器代理 PGP 签名
ca-central-1 加拿大 (中部) ECS 容器代理 PGP 签名
cn-north-1 中国(北京) ECS 容器代理 PGP 签名
cn-northwest-1 中国 (宁夏) ECS 容器代理 PGP 签名
eu-central-1 欧洲(法兰克福) ECS 容器代理 PGP 签名
eu-west-1 欧洲(爱尔兰) ECS 容器代理 PGP 签名
eu-west-2 欧洲(伦敦) ECS 容器代理 PGP 签名
eu-west-3 欧洲(巴黎) ECS 容器代理 PGP 签名
sa-east-1 南美洲(圣保罗) ECS 容器代理 PGP 签名
us-gov-east-1 AWS GovCloud(美国东部) ECS 容器代理 PGP 签名
us-gov-west-1 AWS GovCloud(美国西部) ECS 容器代理 PGP 签名

在非 Amazon ECS EC2 实例上安装 Amazon Linux 容器代理

  1. 启动一个 Amazon EC2 实例,该实例具有允许访问 IAM 的 Amazon ECS. 角色。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色.

  2. 连接到您的 实例。

  3. 在实例上安装最新版本的 Docker。

    注意

    Amazon Linux AMI 始终包含用于 Amazon ECS. 的 Docker 推荐版本。您可以使用 Amazon Linux 命令在 sudo yum install docker -y 上安装 Docker:

  4. 检查 Docker 版本以验证系统是否满足最低版本要求。

    ubuntu:~$ sudo docker version

    输出:

    Client version: 1.4.1
    Client API version: 1.16
    Go version (client): go1.3.3
    Git commit (client): 5bc2ff8
    OS/Arch (client): linux/amd64
    Server version: 1.4.1
    Server API version: 1.16
    Go version (server): go1.3.3
    Git commit (server): 5bc2ff8

    在本示例中,Docker 版本为 1.4.1,低于最低版本 1.9.0. 在继续之前,此实例需要升级其 Docker。有关在特定 Linux 分发版上安装最新 Docker 版本的信息,请转到 https://docs.docker.com/engine/installation/.

  5. 在容器实例上运行以下命令,以允许端口代理使用回环地址路由流量。

    ubuntu:~$ sudo sh -c "echo 'net.ipv4.conf.all.route_localnet = 1' >> /etc/sysctl.conf" ubuntu:~$ sudo sysctl -p /etc/sysctl.conf
  6. 对容器实例运行以下命令以便为任务启用 IAM 角色。有关更多信息,请参阅任务的 IAM 角色.

    ubuntu:~$ sudo apt-get install iptables-persistent ubuntu:~$ sudo iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679 ubuntu:~$ sudo iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679
  7. 添加 iptables 路由以阻止主机外访问自检 API 终端节点。

    ubuntu:~$ sudo iptables -A INPUT -i eth0 -p tcp --dport 51678 -j DROP
  8. 将新的 iptables 配置写入到特定于您的操作系统的位置。

    • 对于 Debian/Ubuntu:

      sudo sh -c 'iptables-save > /etc/iptables/rules.v4'
    • 对于 CentOS/RHEL:

      sudo sh -c 'iptables-save > /etc/sysconfig/iptables'
  9. 创建 /etc/ecs 目录并创建 Amazon ECS 容器代理配置文件。

    ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
  10. 编辑 /etc/ecs/ecs.config 文件并添加以下内容。如果不希望向默认集群注册容器实例,请将 的值指定为集群名称。ECS_CLUSTER.

    ECS_DATADIR=/data ECS_ENABLE_TASK_IAM_ROLE=true ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true ECS_LOGFILE=/log/ecs-agent.log ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"] ECS_LOGLEVEL=info ECS_CLUSTER=default

    有关这些和其他代理运行时选项的更多信息,请参阅 Amazon ECS 容器代理配置.

    注意

    您可以选择将代理环境变量存储在 Amazon S3 中(可在启动时使用 Amazon EC2 用户数据将其下载到容器实例)。建议对敏感信息(如私有存储库的身份验证凭证)采用此方法。有关更多信息,请参阅将容器实例配置存储在 中Amazon S3任务的私有注册表身份验证

  11. 在容器实例上拉取并运行最新的 Amazon ECS 容器代理。

    注意

    使用 Docker 重新启动策略或进程管理器(如 upstartsystemd)将容器代理作为服务或守护程序处理,并确保在容器代理退出后重新启动它。有关更多信息,请参阅 Docker 文档中的自动启动容器重新启动策略。的 Linux 变体Amazon ECS-optimized AMI使用 ecs-init RPM 达到此目的,并且您可以在 上查看此 RPM源代码GitHub。 有关适用于 Ubuntu 16.04 和 systemd 7 的CentOS单位文件示例,请参阅示例容器实例用户数据配置脚本

    以下示例代理运行命令分为若干个单独的行以显示每个选项。有关这些和其他代理运行时选项的更多信息,请参阅 Amazon ECS 容器代理配置.

    重要

    SELinux 启用了 的操作系统需要在--privileged命令中使用 docker run 选项。此外,对于启用了 SELinux的容器实例,我们建议您将 :Z 选项添加到 /log/data 卷挂载。但是,在运行该命令前,这些卷的主机挂载必须存在,否则会出现 no such file or directory 错误。如果您在Amazon ECS启用了 的容器实例上运行 SELinux 代理时遇到困难,请执行以下操作:

    • 在容器实例上创建主机卷挂载点。

      ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
    • --privileged 选项添加到下面的 docker run 命令中。

    • :Z 选项附加到 /log/data 容器卷挂载(例如--volume=/var/log/ecs/:/log:Z,)到docker run以下命令。

    1. (可选) 从区域性 S3 URL 中下载 ECS 容器代理 tarball 并加载它。如果您未从 S3 下载代理 tarball,则下一步中的 docker run 命令会自动从 Docker Hub 中下载。

      ubuntu:~$ curl -o ecs-agent.tar https://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-latest.tar
      注意

      要下载其他版本的 Amazon ECS 容器代理,请使用以下格式之一,并更改 URL 中的版本号:

      ecs-agent-<version>.tar ecs-agent-<SHA>.tar

      例如:

      https://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-v1.18.0.tar https://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-c0defea9.tar

      加载 ECS 容器代理映像。

      ubuntu:~$ sudo docker load --input ./ecs-agent.tar
    2. 运行 ECS 容器代理映像。

      ubuntu:~$ sudo docker run --name ecs-agent \ --detach=true \ --restart=on-failure:10 \ --volume=/var/run:/var/run \ --volume=/var/log/ecs/:/log \ --volume=/var/lib/ecs/data:/data \ --volume=/etc/ecs:/etc/ecs \ --net=host \ --env-file=/etc/ecs/ecs.config \ amazon/amazon-ecs-agent:latest
      重要

      host 网络模式是容器代理容器的唯一受支持的网络模式。有关更多信息,请参阅使用主机网络模式运行 Amazon ECS 容器代理.

      注意

      如果您收到一条 Error response from daemon: Cannot start container 消息,则可以利用 sudo docker rm ecs-agent 命令删除失败的容器并重新尝试运行代理。

  12. (可选) 如果您从 S3 下载 Amazon ECS 容器代理文件,则可验证该文件的有效性。

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

    2. 检索 Amazon ECS PGP 公钥。您可以使用命令检索,也可以手动创建此密钥然后导入。

      1. 选项 1:使用以下命令检索此密钥。

        gpg --keyserver hkp://keys.gnupg.net --recv BCE9D9A42D51784F
      2. 选项 2:创建包含 Amazon ECS PGP 公钥的以下内容的文件,然后导入此文件:

        -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 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 =Gi5D -----END PGP PUBLIC KEY BLOCK-----

        The details of the Amazon ECS PGP public key for reference:

        Key ID: BCE9D9A42D51784F
        Type: RSA
        Size: 4096/4096
        Expires: Never
        User ID: Amazon ECS
        Key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F

        使用以下命令导入 Amazon ECS PGP 公钥。

        gpg --import <public_key_filename>
    3. 下载 ECS 容器代理签名。ECS 容器代理签名是存储在扩展名为 的文件中的 ascii 分离 PGP 签名.asc。 签名文件具有与其相应可执行文件相同的名称,并.asc附加了 。

      curl -o ecs-agent.asc https://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-latest.tar.asc
    4. 验证签名。

      gpg --verify ecs-agent.asc ./ecs-agent.tar

      预期输出:

      gpg: Signature made Wed 16 May 2018 08:21:06 PM UTC using RSA key ID 710E61AF
      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
      注意

      输出中的警告是预料中的,没有问题;它出现是因为您的个人 PGP 密钥 (如果您有) 和 Amazon ECS PGP 密钥之间没有信任链。有关更多信息,请参阅信任 Web.

使用主机网络模式运行 Amazon ECS 容器代理

运行 Amazon ECS 容器代理时,ecs-init 将使用 host 网络模式创建容器代理容器。这是容器代理容器的唯一受支持的网络模式。

这使您能够阻止对容器代理启动的容器Amazon EC2的实例元数据服务终端节点http://169.254.169.254) 的访问。这将确保容器无法访问容器实例配置文件中的 IAM 角色凭证并强制任务仅使用 IAM 任务角色凭证。有关更多信息,请参阅任务的 IAM 角色.

这还可以让容器代理不会争用 docker0 桥接上的连接和网络流量。