Кастомные хуки перед удалением старых версий контейнеров в Amazon ECS - PullRequest
0 голосов
/ 27 июня 2018

Я изо всех сил пытаюсь найти правильные слова, чтобы точно описать то, что я пытаюсь сделать, поэтому есть хороший шанс, который блокирует мою способность гуглить, что может быть простым ответом. У меня есть служба, развернутая на ECS Amazon. Когда я нажимаю новую версию определения Задачи, чтобы обновить ее до нового образа докера, ECS управляет раскруткой новой версии, а затем прокручивает старые экземпляры точно так, как вы ожидаете.

Однако в этих старых инстансах есть связи с клиентами, и я хотел бы закончить их изящно. В противном случае моя служба функционировала бы на отлично, если бы старым экземплярам было разрешено продолжать работу, пока они имели соединения, а другие части моей прикладной инфраструктуры гарантируют, что новые соединения будут направлены на новые контейнеры.

Предоставляет ли Amazon какой-либо вид хука, где я могу настроить условия для сноса старых контейнеров? Если нет, единственная другая идея, с которой я столкнулся, - это сделать новые версии полностью другой «Службой» и удалить старую службу после того, как все соединения будут закрыты. Это решение "самому себе" будет намного больше работать и более подвержено ошибкам, хотя ... в надежде на что-то лучшее.

1 Ответ

0 голосов
/ 27 июня 2018

Вы должны прочитать эту страницу документа полностью.

ECS обрабатывает постепенное переключение для вас, если вы обновляете определение задачи для работающей службы. Как только задачи из новой задачи становятся работоспособными, трафик из ALB / Target-group прекращает маршрутизацию к старым задачам и идет только к новым задачам. Старые задачи сохраняются до тех пор, пока все соединения с ними не истощаются, поэтому происходит постепенный переход к новым определениям задач.

Набранные вами номера - это максимальный и минимальный процент здоровья.

enter image description here

Значения по умолчанию 100 и 200 означают, что во время переключения может выполняться до 2-х заданных задач. Если вы начали с, скажем, 3 задач, 3 новые задачи по определению задач будут запущены, старые будут уничтожены только после того, как новые начнут проходить проверку работоспособности, в любой момент времени выполняется минимум 3 работоспособные задачи. Если новые задачи не выполняются, старые никогда не прекращаются.

...