¿Cómo implemento imágenes de Docker actualizadas en tareas de Amazon ECS?

Resuelto aknuds1 asked hace 54 años • 12 respuestas

¿Cuál es el enfoque correcto para que mis tareas de Amazon ECS actualicen sus imágenes de Docker, una vez dichas imágenes hayan sido actualizadas en el registro correspondiente?

aknuds1 avatar Jan 01 '70 08:01 aknuds1
Aceptado

Si su tarea se ejecuta bajo un servicio, puede forzar una nueva implementación. Esto obliga a reevaluar la definición de la tarea y a extraer la nueva imagen del contenedor.

aws ecs update-service --cluster <cluster name> --service <service name> --force-new-deployment
Dima avatar Feb 01 '2018 21:02 Dima

Cada vez que inicia una tarea (ya sea a través de StartTaskllamadas RunTaskAPI y o que se inicia automáticamente como parte de un Servicio), el Agente ECS realizará una docker pullde las acciones que imageusted especifique en su definición de tarea. Si usa el mismo nombre de imagen (incluida la etiqueta) cada vez que ingresa a su registro, debería poder ejecutar la nueva imagen ejecutando una nueva tarea. Tenga en cuenta que si Docker no puede acceder al registro por algún motivo (por ejemplo, problemas de red o problemas de autenticación), el Agente ECS intentará utilizar una imagen almacenada en caché; Si desea evitar que se utilicen imágenes almacenadas en caché cuando actualiza su imagen, deberá insertar una etiqueta diferente en su registro cada vez y actualizar la definición de su tarea en consecuencia antes de ejecutar la nueva tarea.

Actualización: este comportamiento ahora se puede ajustar a través de la ECS_IMAGE_PULL_BEHAVIORvariable de entorno configurada en el agente ECS. Consulte la documentación para obtener más detalles. Al momento de escribir este artículo, se admiten las siguientes configuraciones:

El comportamiento utilizado para personalizar el proceso de extracción de imágenes para sus instancias de contenedor. A continuación se describen los comportamientos opcionales:

  • Si defaultse especifica, la imagen se extrae de forma remota. Si la extracción de la imagen falla, el contenedor utiliza la imagen almacenada en caché en la instancia.

  • Si alwaysse especifica, la imagen siempre se extrae de forma remota. Si la extracción de la imagen falla, la tarea falla. Esta opción garantiza que siempre se extraiga la última versión de la imagen. Todas las imágenes almacenadas en caché se ignoran y están sujetas al proceso automatizado de limpieza de imágenes.

  • Si oncese especifica, la imagen se extrae de forma remota solo si no ha sido extraída mediante una tarea anterior en la misma instancia de contenedor o si la imagen almacenada en caché se eliminó mediante el proceso de limpieza automatizada de imágenes. De lo contrario, se utiliza la imagen almacenada en caché en la instancia. Esto garantiza que no se intenten extracciones innecesarias de imágenes.

  • Si prefer-cachedse especifica, la imagen se extrae de forma remota si no hay una imagen almacenada en caché. De lo contrario, se utiliza la imagen almacenada en caché en la instancia. La limpieza automática de imágenes está deshabilitada para el contenedor para garantizar que la imagen almacenada en caché no se elimine.

Samuel Karp avatar Jan 17 '2016 22:01 Samuel Karp