Lógica de limitación controlada de servicios de Amazon ECS - Amazon Elastic Container Service

Lógica de limitación controlada de servicios de Amazon ECS

El programador de servicios de Amazon ECS incluye una lógica que limita la frecuencia con la que se lanzan las tareas del servicio si no pueden iniciarse tras varios intentos.

Si las tareas para un servicio no consiguen entrar en el estado RUNNING tras varios intentos (al progresar directamente de PENDING a STOPPED), el tiempo entre intentos de reinicio siguientes se aumenta de forma gradual hasta un máximo de 27 minutos. Este periodo máximo está sujeto a cambios en el futuro. Este comportamiento reduce el efecto que tienen las tareas que no funcionan correctamente en los recursos del clúster de Amazon ECS o en los costes de infraestructura de Fargate. Si el servicio inicia la lógica de limitación, recibirá el siguiente mensaje de eventos de servicio:

(service service-name) is unable to consistently start tasks successfully.

Amazon ECS nunca impide que un servicio fallido vuelva a intentarlo. Tampoco intenta modificarlo de forma que no sea al aumentar el tiempo entre reinicios. La lógica de limitación del servicio no proporciona ningún parámetro que pueda ajustar el usuario.

Si actualiza el servicio para utilizar una nueva definición de tarea, el servicio vuelve a un estado normal, no limitado de inmediato. Para obtener más información, consulte Actualización de un servicio de Amazon ECS mediante la consola.

A continuación, se muestran algunas causas comunes que inician esta lógica. Le recomendamos que siga estos pasos manuales para solucionar el problema:

importante

Las tareas que se detienen después de que alcancen el estado RUNNING no activan la lógica de limitación o el mensaje de eventos de servicio asociado. Por ejemplo, supongamos que las comprobaciones de estado del equilibrador de carga elástico fallidas para un servicio hacen que una tarea se marque como en mal estado y Amazon ECS anula el registro y detiene la tarea. En este punto, las tareas no están limitadas. Incluso si el comando de contenedor de una tarea se cierra inmediatamente con un código de salida distinto de cero, la tarea ya se ha movido al estado RUNNING. Las tareas que fallan inmediatamente debido a errores de comando no activan la limitación o el mensaje de eventos de servicio.