¿Cómo soluciono el problema que provoca que las tareas de Amazon ECS tarden mucho en detenerse cuando la instancia del contenedor está configurada en VACIANDO?

4 minutos de lectura
0

Mi tarea de Amazon Elastic Container Service (Amazon ECS) tarda mucho en pasar al estado DETENIDO. O bien, mi tarea de Amazon ECS se bloquea en el estado EJECUTANDO cuando la instancia del contenedor está configurada en VACIANDO. ¿Cómo puedo resolver este problema?

Descripción breve

Al configurar una instancia de ECS en VACIANDO, Amazon ECS hace lo siguiente:

  • Impide que se programen nuevas tareas para su colocación en la instancia de contenedor
  • Detiene las tareas de la instancia de contenedor que están en estado EJECUTANDO

Las tareas pueden quedarse en el estado EJECUTANDO o tardar más tiempo en pasar al estado DETENIDO debido a problemas con los parámetros de configuración o las tareas. Para solucionar estos problemas, tenga en cuenta las siguientes opciones:

Resolución

Confirmación de que los parámetros de DeploymentConfiguration estén configurados correctamente

  1. Abra la consola de Amazon ECS.
  2. En el panel de navegación, elija Clústeres y, a continuación, elija el clúster en el que se está agotando la instancia de contenedor.
  3. Seleccione la pestaña Instancias de ECS y, a continuación, seleccione VACIANDO en la sección Estado.
  4. Elija su instancia de contenedor y, a continuación, busque el servicio para las tareas que se están vaciando o que tardan mucho en vaciarse.
  5. Elija la pestaña Servicios, seleccione el servicio y, a continuación, elija Implementaciones.
  6. Compruebe los valores de minimumHealthyPercent y maximumPercent.
    Nota: Las tareas de servicio de las instancias de contenedor que están en estado EJECUTANDO se detienen y se sustituyen de acuerdo con los parámetros de configuración del despliegue del servicio: minimumHealthyPercent y maximumPercent.

Confirmación de que el valor de Retardo de anulación del registro esté configurado correctamente

Importante: Los pasos siguientes solo se aplican a los servicios que utilizan el equilibrador de carga de aplicación o el equilibrador de carga de red. Si su servicio utiliza el equilibrador de carga clásico, compruebe los valores de drenaje de conexiones.

  1. Abra la consola de Amazon ECS.
  2. En el panel de navegación, elija Clústeres y, a continuación, elija el clúster en el que se está agotando la instancia de contenedor.
  3. Elija la pestaña Servicios y, a continuación, seleccione el servicio con la pila atascada en EJECUTANDO.
  4. Elija Nombre del grupo de destino.
  5. En la pestaña Detalles, desplácese hacia abajo y, a continuación, seleccione la casilla Retardo de anulación del registro.

Confirmación de que el valor de ECS_CONTAINER_STOP_TIMEOUT esté configurado correctamente

  1. Conéctese a su instancia de contenedor mediante SSH.
  2. Ejecute el comando docker inspect ecs-agent --format '{{json .Config.Env}}'.
  3. Compruebe si hay un valor para ECS_CONTAINER_STOP_TIMEOUT.
    Nota: ECS_CONTAINER_STOP_TIMEOUT es un parámetro del agente de contenedores de ECS que define la cantidad de tiempo que Amazon ECS espera antes de finalizar un contenedor. La duración del tiempo comienza a contar cuando se detiene una tarea. Si no ve el parámetro ECS_CONTAINER_STOP_TIMEOUT en el resultado después de ejecutar el comando del paso 2, Amazon ECS utiliza el valor predeterminado de 30 segundos.

Búsqueda de otros problemas relacionados con las tareas

  1. Conéctese a su instancia de contenedor mediante SSH.
  2. Compruebe que el daemon de Docker y el agente contenedor de Amazon ECS se estén ejecutando para las AMI de Amazon Linux 1 o de Amazon Linux 2.
  3. Compruebe los registros de la aplicación en función del controlador de registro establecido por logConfiguration.
    Nota: Por ejemplo, si sus tareas utilizan el controlador de registro awslogs, compruebe si hay problemas en los registros de Amazon CloudWatch.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años