Lógica de limitación controlada de servicios de Amazon ECS
El programador de servicios de Amazon ECS incluye una lógica de protección que limita la frecuencia con la que se lanzan las tareas del servicio si no pueden iniciarse tras varios intentos. Esto ayuda a evitar el consumo innecesario de recursos y reduce los costos.
Cuando las tareas de un servicio no pasan del estado PENDING
a RUNNING
y, en lugar de ello, pasan directamente a STOPPED
, el programador:
-
Aumenta gradualmente el tiempo entre los intentos de reinicio
-
Sigue aumentando los retrasos hasta un máximo de 27 minutos entre intentos
-
Genera un mensaje de evento de servicio para notificarle el problema
nota
El periodo máximo de retraso de 27 minutos puede cambiar en futuras actualizaciones.
Cuando se active la limitación, recibirá este mensaje de evento de servicio:
(service
service-name
) is unable to consistently start tasks successfully.
Características importantes de la lógica de limitación:
-
Los servicios continúan reintentándolo indefinidamente
-
La única modificación es el aumento del tiempo entre reinicios
-
No hay parámetros configurables por el usuario
Resolución de problemas de limitación
Para resolver un problema de limitación, puede hacer lo siguiente:
-
Actualice el servicio para utilizar una nueva definición de tarea, que inmediatamente devuelve el servicio a una operación normal, sin limitaciones. Para obtener más información, consulte Actualización de un servicio de Amazon ECS.
-
Aborde la causa subyacente de los errores en las tareas.
Entre las causas más comunes de los errores en las tareas que provocan la limitación se incluyen las siguientes:
-
Recursos de clúster insuficientes (puertos, memoria o CPU)
-
Fallos al extraer la imagen del contenedor
-
Puede deberse a nombres o etiquetas de imagen no válidos o a permisos insuficientes
-
Da como resultado
CannotPullContainerError
en Visualización de los errores de las tareas detenidas de Amazon ECS
-
-
Espacio en disco insuficiente
-
Da como resultado
CannotCreateContainerError
en errores de tareas detenidas -
Para ver los pasos de resolución, consulte Solución del problema de Docker API error (500): devmapper en Amazon ECS
-
importante
Los siguientes escenarios NO activan la lógica de limitación:
-
Tareas que se detienen después de alcanzar el estado
RUNNING
-
Se detuvieron tareas debido a comprobaciones de estado de Elastic Load Balancing con errores
-
Tareas en las que el comando de contenedor se cierra con un código distinto de cero después de alcanzar el estado
RUNNING