@ttmje

Как автоматически перезапускать таск в ECS при пуше нового image?

Есть пайплайн, который пушит новый docker image в Amazon ECR.
Есть кластер, который использует последний запушенный image.
Чтобы изменения из нового image вступили в силу, нужно перезапустить этот таск в ECS.
Как это можно автоматизировать?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@vitaly_il1
DevOps Consulting
Использовать latest image - это неправильная практика.
Как сказал akelsey, нужно обновить Task Defintion, и тогда ничего перезапускать не надо.
Я для это в Github Actions использую
aws-actions/amazon-ecs-render-task-definition
и
aws-actions/amazon-ecs-deploy-task-definition
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
akelsey
@akelsey
Самый лучший вариант при настроенном сервисе (desired tasks 1) это пушать имидж присвоив номер версии, например номер билда, и обновлять Task Defintion, тогда ECS сам сделает текущий имидж INACTIVE, параллельно инициализировав второй (плавно выведет старый из сервиса, когда новый станет активным).
Если же предложенный вариант не вариант - так же в пайплайне стопать таску и запускать aws cli.
Ответ написан
Комментировать
Viji
@Viji
Associate DevOps Engineer
Привет, используй EventBridge (раньше cloudwatch events) - https://docs.aws.amazon.com/codepipeline/latest/us... который будет вызывать не codepipeline (как в примере) при пуше нового образа в ECR, а например Lambda function, которая будет обновлять таск ECS

удачи, Вадим
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы