Instalación del agente de contenedor de Amazon ECS - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instalación del agente de contenedor de Amazon ECS

Si la instancia de contenedor no se lanzó a través de una AMI optimizada para Amazon ECS, puede instalar el agente de contenedor de Amazon ECS manualmente mediante alguno de estos procedimientos. El agente de contenedor de Amazon ECS está incluido en las AMI optimizadas para Amazon ECS y no requiere instalación.

nota

Las unidades systemd de los servicios de Amazon ECS y de Docker tienen la instrucción de esperar a que cloud-init finalice antes de comenzar ambos servicios. El proceso cloud-init no se considera finalizado hasta que los datos de usuario de Amazon EC2 hayan terminado de ejecutarse. Por lo tanto, el inicio de Amazon ECS o de Docker a través de los datos de usuario de Amazon EC2 puede provocar un bloqueo. Para comenzar el agente de contenedor mediante los datos de usuario de Amazon EC2, puede utilizar systemctl enable --now --no-block ecs.service.

Instalación del agente de contenedor de Amazon ECS en una instancia de EC2 de Amazon Linux 2

Para instalar el agente de contenedor de Amazon ECS en una instancia de EC2 de Amazon Linux 2 mediante el comando amazon-linux-extras, siga estos pasos.

Para instalar el agente de contenedor de Amazon ECS en una instancia EC2 de Amazon Linux 2
  1. Lance una instancia de EC2 de Amazon Linux 2 con un rol de IAM que permita obtener acceso a Amazon ECS. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

  2. Conéctese a la instancia.

  3. Deshabilite el repositorio docker Amazon Linux adicional. El repositorio ecs de Amazon Linux adicional se suministra con su propia versión de Docker, por lo que el docker adicional se debe deshabilitar para evitar cualquier posible conflicto en el futuro. De este modo, se garantiza que siempre esté utilizando la versión de Docker que Amazon ECS pretende que usted use con una versión específica del agente de contenedor.

    [ec2-user ~]$ sudo amazon-linux-extras disable docker
  4. Instale y habilite el repositorio ecs Amazon Linux adicional.

    [ec2-user ~]$ sudo amazon-linux-extras install -y ecs; sudo systemctl enable --now ecs
  5. (Opcional) Puede verificar que el agente se está ejecutando y ver información acerca de la nueva instancia de contenedor con la API de introspección del agente. Para obtener más información, consulte Introducción a los contenedores Amazon ECS.

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

    Si no recibe ninguna respuesta, asegúrese de haber asociado el rol de IAM de la instancia de contenedor de Amazon ECS al lanzar la instancia. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

Instalación del agente contenedor Amazon ECS en una instancia EC2 de Amazon Linux

Para instalar el agente contenedor Amazon ECS en una instancia EC2 de Amazon Linux mediante el repositorio de Amazon YUM, siga estos pasos.

Para instalar el agente contenedor Amazon ECS en una instancia EC2 de Amazon Linux
  1. Lance una instancia EC2 de Amazon Linux con una función de IAM que permita el acceso a Amazon ECS. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

  2. Conéctese a la instancia.

  3. Instale el paquete ecs-init. Para obtener más información al respectoecs-init, consulte el código fuente en. GitHub

    [ec2-user ~]$ sudo yum install -y ecs-init
  4. Abra el daemon de Docker.

    [ec2-user ~]$ sudo service docker start

    Salida:

    Starting cgconfig service:                                 [  OK  ]
    Starting docker:	                                   [  OK  ]
  5. Abra el trabajo upstart ecs-init.

    [ec2-user ~]$ sudo service ecs start

    Salida:

    ecs start/running, process 2804
  6. (Opcional) Puede verificar que el agente se está ejecutando y ver información acerca de la nueva instancia de contenedor con la API de introspección del agente. Para obtener más información, consulte Introducción a los contenedores Amazon ECS.

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

Instalación del agente de contenedor de Amazon ECS en una instancia de EC2 que no es de Amazon Linux

Para instalar el agente de contenedor de Amazon ECS en una instancia de EC2 que no sea de Amazon Linux, puede descargar el agente desde uno de los buckets de S3 de las regiones o desde Docker Hub.

nota

Cuando utilice una AMI que no sea de Amazon Linux, la instancia de Amazon EC2 requiere que el cgroupfs sea compatible con el controlador cgroup para que el agente de Amazon ECS admita los límites de recursos de nivel de tarea. Para obtener más información, consulte el agente de Amazon ECS en GitHub.

A continuación, se muestran los archivos del agente de contenedor de Amazon ECS más recientes por región para cada arquitectura del sistema, a modo de referencia.

Región Nombre de la región Archivos deb de init de Amazon ECS Archivos rpm de init de Amazon ECS
us-east-2 Este de EE. UU. (Ohio)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-east-1 Este de EE. UU. (Norte de Virginia)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-west-1 Oeste de EE. UU. (Norte de California)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-west-2 Oeste de EE. UU. (Oregón)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-east-1 Asia-Pacífico (Hong Kong)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-northeast-1 Asia-Pacífico (Tokio)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-northeast-2 Asia-Pacífico (Seúl)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-south-1 Asia-Pacífico (Bombay)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-southeast-1 Asia-Pacífico (Singapur)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-southeast-2 Asia-Pacífico (Sídney)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ca-central-1 Canadá (centro)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-central-1 Europa (Fráncfort)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-west-1 Europa (Irlanda)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-west-2 Europa (Londres)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-west-3 Europa (París)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

sa-east-1 América del Sur (São Paulo)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64

Amazon ECS init aarch64 (aarch64)

us-gov-east-1 AWS GovCloud (Este de EE. UU.)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-gov-west-1 AWS GovCloud (Estados Unidos-Oeste)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

Para instalar el agente de contenedor de Amazon ECS en una instancia de Amazon EC2 con una AMI que no sea de Amazon Linux
  1. Lance una instancia de Amazon EC2 con un rol de IAM que permita obtener acceso a Amazon ECS. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

  2. Conéctese a la instancia.

  3. Instale la última versión de Docker en su instancia.

  4. Compruebe la versión de Docker para verificar que su sistema cumpla con el requisito de la versión mínima.

    nota

    La versión mínima de Docker para obtener métricas fiables es la versión de Docker v20.10.13 y versiones posteriores, que se incluyen en la AMI 20220607 optimizada para Amazon ECS y versiones posteriores.

    Los agentes de Amazon ECS versión 1.20.0 y posteriores ya no admiten versiones de Docker anteriores a la 1.9.0.

    docker --version
  5. Descargue el archivo del agente correspondiente de Amazon ECS correspondiente correspondiente a su sistema y arquitectura del sistema del sistema e instálelo.

    Para arquitecturas deb:

    ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb

    Para arquitecturas rpm:

    fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
  6. Edite el /lib/systemd/system/ecs.service archivo y añada la siguiente línea al final de la [Unit] sección.

    After=cloud-final.service
  7. (Opcional) Para registrar la instancia en un clúster distinto del clúster default, edite el archivo /etc/ecs/ecs.config y agregue los siguientes contenidos. Por ejemplo, lo siguiente especifica el clúster MyCluster:

    ECS_CLUSTER=MyCluster

    Para obtener más información acerca de estas y otras opciones de tiempo de ejecución de agente, consulte Configuración del agente de contenedor de Amazon ECS.

    nota

    Si lo desea, puede almacenar las variables de entorno del agente en Amazon S3 (se pueden descargar en las instancias de contenedor en el momento del lanzamiento utilizando datos de usuario de Amazon EC2). Se recomienda su uso para información confidencial como las credenciales de autenticación para repositorios privados. Para obtener más información, consulte Almacenamiento de la configuración de instancia de contenedor en Amazon S3 y Autenticación de registros privados para tareas.

  8. Inicie el servicio ecs.

    ubuntu:~$ sudo systemctl start ecs

Ejecución del agente de Amazon ECS en el modo de red del host

Al ejecutar el agente de contenedor de Amazon ECS, ecs-init creará el contenedor del agente de contenedores con el modo de red host. Este es el único modo de red compatible para el contenedor de agente de contenedores.

Esto permite bloquear el acceso al punto de conexión de servicio de metadatos de la instancia de Amazon EC2 (http://169.254.169.254) para los contenedores que inicia el agente de contenedor. Esto garantiza que los contenedores no puedan obtener acceso a las credenciales del rol de IAM desde el perfil de instancia de contenedor y obliga a que las tareas utilicen solo las credenciales del rol de tarea de IAM. Para obtener más información, consulte Rol de IAM para la tarea.

Esto también lo hace para que el agente de contenedor no compita por las conexiones y el tráfico de red en el puente docker0.