¿Por qué mi instancia de Amazon ECS o Amazon EC2 no puede unirse al clúster?

6 minutos de lectura
0

No puedo usar un clúster de Amazon Elastic Container Service (Amazon ECS) para registrar mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).

Resolución

Requisito previo

Antes de completar los siguientes pasos manuales, utilice el runbook de AWS Systems Manager AWSSupport-TroubleshootECSContainerInstance para comprobar automáticamente si hay posibles problemas.

El runbook AWSSupport-TroubleshootECSContainerInstance de AWS Systems Manager soluciona automáticamente los motivos más habituales por los que una instancia de Amazon EC2 no puede registrarse o unirse a un clúster. El runbook comprueba los siguientes requisitos:

Nota: Asegúrese de utilizar el runbook AWSSupport-TroubleshootECSContainerInstance en la misma región de AWS en la que se encuentran el clúster de ECS y la instancia de EC2.

Si el resultado del runbook no proporciona recomendaciones, utilice las siguientes resoluciones para solucionar este problema de forma manual.

Verificación del estado del agente de Amazon ECS en la instancia de Amazon Linux 2

Para comprobar si el agente contenedor de Amazon ECS de la instancia se ejecuta, ejecute el siguiente comando:

sudo systemctl status ecs

Si el agente de contenedor no se ejecuta en la instancia de contenedor, ejecute el siguiente comando para iniciar el agente:

sudo systemctl start ecs

El resultado del comando debe ser similar al del siguiente ejemplo de resultado del comando:

ecs start/running, process 23403

Comprobación de las configuraciones de lanzamiento

Si la instancia de lanzamiento forma parte de un grupo de escalamiento automático de AWS, confirme que la configuración de lanzamiento del grupo de escalamiento automático sea correcta. Para obtener más información, consulte el paso Create a new launch configuration en Refreshing an Amazon ECS Container Instance Cluster With a New AMI.

Comprobación de la imagen de máquina de Amazon (AMI) de la instancia

Si la AMI utilizada para la instancia de EC2 es una AMI copiada o una AMI personalizada, asegúrese de que la instancia cumpla los siguientes requisitos:

Los requisitos están preconfigurados en la AMI optimizada para Amazon ECS. Se recomienda usar una AMI optimizada para Amazon ECS a menos que la aplicación requiera una versión que aún no esté disponible en esa AMI.

Cómo comprobar si los datos de usuario de una instancia contienen la información de clúster correcta

Para comprobar si los datos de usuario de una instancia contienen la información de clúster correcta, ejecute el siguiente comando:

#!/bin/bash  
echo ECS_CLUSTER=<cluster-name> >> /etc/ecs/ecs.config

Comprobación de los archivos de registro

Si el problema persiste, utilice el recopilador de registros de Amazon ECS para recopilar los registros. A continuación, revise los registros para encontrar la causa. También puede comprobar los archivos de registro en el host del contenedor para el agente de contenedor y Docker.

Para ver los archivos de registro del agente de contenedor y Docker, ejecute los siguientes comandos:

sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-**sudo cat /var/log/docker

Solución de errores habituales

Error: lanzamiento de una nueva instancia de EC2. Motivo del estado: esta cuenta está bloqueada y no se reconoce como una cuenta válida. Si tiene alguna pregunta, póngase en contacto con aws-verification@amazon.com. No se ha podido iniciar la instancia de EC2.

Este error se produce cuando su cuenta está bloqueada y Amazon no la reconoce. Para desbloquear la cuenta, envíe un correo electrónico a aws-verification@amazon.com. En el correo electrónico, indique que necesita desbloquear su cuenta.

Error: repetición del registro: excepción del cliente: la instancia de contenedor 12345678910xxxxxxxxxxxx está inactiva.\n\tCódigo de estado: 400, ID de la solicitud: 012345678a-012345b-012ab-0a1-9f645f4s5c12" module=agent.go

Este error se produce cuando el agente de ECS no puede utilizar el clúster de ECS para registrar la instancia de contenedor de EC2 porque está inactiva en ese momento. Este error está relacionado con la aplicación que se ejecuta en la instancia. Para entender la causa del error, consulte primero la aplicación. Si el error persiste, compruebe los registros del agente de ECS.

Error: Algunas instancias pueden unirse al clúster, pero otras no pueden hacerlo a pesar de tener las mismas configuraciones.

Este error se produce por una ThrottlingException cuando se supera el límite de tasa de una llamada a la API en concreto. Para solucionar este error, aumente el límite de tasa en el nivel de la cuenta. Compruebe si hay alguna API, como RegisterTargets o RegisterContainerInstance.

Error: Después de cambiar el tipo de instancia, las instancias nuevas no pueden unirse al clúster.

Este error se produce cuando el agente de ECS se bloquea en estado Pendiente y no puede cambiar el tipo de instancia. Para cambiar el tipo de instancia en Amazon ECS, siga estos pasos:

  1. Elimine la instancia de contenedor.
  2. Lance una nueva instancia de contenedor que tenga el nuevo tamaño de instancia.
    Nota: Se recomienda utilizar una AMI de Amazon Linux 2 optimizada para Amazon ECS para lanzar la instancia para su clúster.

También puede crear una nueva configuración de lanzamiento. A continuación, actualice esta configuración de lanzamiento en el grupo de escalamiento automático.

Para obtener más información, consulte How do I change my container instance type in Amazon ECS?

Error: No se ha podido registrar como una instancia de contenedor en ECS: excepción de acceso denegado: el usuario arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-00aa11bb22cc33def is no está autorizado a realizar ecs:RegisterContainerInstance en el recurso arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster. Código de estado: 400, ID de la solicitud: 0a123456-7899-10101-a987-6543210deff

-o-

Error: 2019-06-29T16:10:09Z [ERROR] Error al volver a registrarse: excepción de acceso denegado: el usuario: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-0052b2e858b1891ef no está autorizado a realizar: ecs:registerContainerInstance en el recurso arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster. Código de estado: 400, ID de la solicitud: 0a123456-7899-10101-a987-123456pqrs

Estos errores se deben a que faltan permisos de IAM. Para resolver estos errores, debe crear un rol de IAM de instancia de contenedor.

A continuación, ejecute el runbook AWSSupport-TroubleshootECSContainerInstance para determinar qué permisos faltan en el rol de la instancia de contenedor.

Información relacionada

Creación de una nube virtual privada

¿Por qué mis instancias de contenedor de Amazon ECS están desconectadas de las AMI de Amazon Linux 1?

Solución de problemas de Amazon ECS

Creación de runbooks propios