¿Por qué mi instancia de Amazon ECS o Amazon EC2 no puede unirse al clúster?
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:
- Los datos de usuario correspondientes a la instancia contienen la información correcta del clúster. Para obtener más información, consulte Arranque de instancias de contenedor de Linux de Amazon ECS para la transferencia de datos.
- El perfil de instancia contiene los permisos necesarios.
- La red está configurada correctamente.
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:
- Una distribución de Linux que ejecute como mínimo la versión 3.10 del kernel de Linux.
- La versión más reciente del agente de contenedor de Linux de Amazon ECS.
- Un daemon de Docker que ejecute como mínimo la versión 1.9.0 y cualquier dependencia de versión ejecutable de Docker. Para obtener más información, consulte Install Docker Engine from binaries en el sitio web de Docker. Para ver la versión actual de Docker, ejecute el comando sudo docker version. Para obtener más información, consulte Install Docker Engine en el sitio web de Docker.
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:
- Elimine la instancia de contenedor.
- 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
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años