Limpieza automática de tareas e imágenes de Amazon ECS
Cada vez que se coloca una tarea en una instancia de contenedor, el agente de contenedor de Amazon ECS comprueba si las imágenes a las que se hace referencia en la tarea son las más recientes de la etiqueta especificada en el repositorio. De lo contrario, el comportamiento predeterminado permite que el agente extraiga las imágenes desde sus repositorios respectivos. Si actualiza las imágenes con frecuencia en las tareas y servicios, el almacenamiento de la instancia de contenedor se puede rellenar rápidamente con imágenes de Docker que ya no utiliza y probablemente no volverá a utilizar. Por ejemplo, podría utilizar una canalización de integración e implementación continuas (CI/CD).
nota
El comportamiento de extracción de imágenes del agente de Amazon ECS se puede personalizar mediante el parámetro ECS_IMAGE_PULL_BEHAVIOR
. Para obtener más información, consulte Configuración del agente de contenedor de Amazon ECS.
Del mismo modo, los contenedores que pertenecen a tareas detenidas también pueden consumir almacenamiento de la instancia de contenedor con información de registro, volúmenes de datos y otros artefactos. Estos artefactos son útiles para la depuración de contenedores que se han detenido de forma inesperada, pero la mayor parte de este almacenamiento se puede liberar con seguridad tras un periodo de tiempo.
De forma predeterminada, el agente de contenedor de Amazon ECS limpia automáticamente las tareas detenidas y las imágenes de Docker que no está utilizando ninguna tarea en las instancias de contenedor.
nota
La característica de limpieza automatizada de imágenes requiere al menos la versión 1.13.0 del agente de contenedor de Amazon ECS. Para actualizar el agente a la versión más reciente, consulte Actualización del agente de contenedor de Amazon ECS.
Las siguientes variables de configuración del agente están disponibles para ajustar la experiencia de limpieza de imágenes y tareas automatizada. Para obtener más información acerca de cómo se establecen estas variables en las instancias de contenedor, consulte Configuración del agente de contenedor de Amazon ECS.
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
-
Esta variable especifica el tiempo que esperar antes de eliminar algún contenedor que pertenezca a tareas detenidas. El proceso de limpieza de imágenes no puede eliminar una imagen en tanto en cuando haya un contenedor que haga referencia a la misma. Después de que ningún contenedor (tanto parados como en ejecución) haga referencia a las imágenes, la imagen se puede limpiar. De forma predeterminada, este parámetro se establece en 3 horas, pero puede reducir este período a solo 1 minuto, si lo necesita para su aplicación. El parámetro se ignora si establece el valor en menos de 1 segundo.
ECS_DISABLE_IMAGE_CLEANUP
-
Si establece esta variable como
true
, la limpieza de imagen automatizada se desactiva en la instancia de contenedor y no se elimina ninguna imagen automáticamente. ECS_IMAGE_CLEANUP_INTERVAL
-
Esta variable especifica con qué frecuencia debe comprobar el proceso de limpieza de imagen las imágenes para eliminarlas. El valor predeterminado es cada 30 minutos, pero puede reducir este período a solo 10 minutos para eliminar las imágenes con más frecuencia.
ECS_IMAGE_MINIMUM_CLEANUP_AGE
-
Esta variable especifica la cantidad de tiempo mínima entre la extracción de una imagen y el momento en que puede convertirse en candidata a su eliminación. Esto se utiliza para evitar la limpieza de las imágenes que se acaban de extraer. El valor predeterminado es una hora.
ECS_NUM_IMAGES_DELETE_PER_CYCLE
-
Esta variable especifica cuántas imágenes se pueden eliminar durante un ciclo de limpieza único. El valor predeterminado es 5 y el mínimo es 1.
Cuando el agente de contenedor de Amazon ECS está en ejecución y no se ha desactivado la limpieza automatizada de imágenes, el agente comprueba si hay imágenes de Docker a las que no se hace referencia en los contenedores en ejecución o detenidos a una frecuencia determinada por la variable ECS_IMAGE_CLEANUP_INTERVAL
. Si se encuentran imágenes sin utilizar y son más antiguas del tiempo de limpieza mínimo especificado por la variable ECS_IMAGE_MINIMUM_CLEANUP_AGE
, el agente elimina hasta el número máximo de imágenes especificadas por la variable ECS_NUM_IMAGES_DELETE_PER_CYCLE
. Se eliminan primero las imágenes a las que se ha hecho referencia menos recientemente. Una vez que las imágenes se han eliminado, el agente espera hasta el siguiente intervalo y vuelve a repetir el proceso.