У меня есть служба ECS, развернутая в Fargate.
Он прикреплен к Network Load Balancer. Прокатываемое обновление работает нормально, но внезапно я вижу следующую проблему.
Когда я обновляю службу с новым определением задачи, Fargate запускает развертывание и пытается запустить новый контейнер. Поскольку у меня есть служба, подключенная к NLB, новая задача регистрируется в целевой группе NLB.
Но проверка состояния NLB Target Group не удалась. Таким образом, Fargate убивает проваленную задачу и запускает новую задачу. Это повторяется несколько раз (на самом деле это число варьируется, сегодня на завершение скользящего обновления ушло 7 часов).
После развертывания изменений в инфра-части нет. Группа безопасности разрешает трафик в VPC. NLB и служба ECS развернуты в одном VPC, в одной подсети.
Проверка работоспособности Fargate не выполняется для задачи с одним и тем же образом докера N раз, но после этого она начинает работать.
Порог работоспособности / неработоспособности целевой группы равен 3, протокол - TCP, порт - порт трафика, а интервал - 30. В журнале запуска микросервиса я вижу это:
Started myapp in 44.174 seconds (JVM running for 45.734)
Когда задача подошла, я попытался открыть правило группы безопасности для VPN и попытался напрямую получить доступ к IP-адресу задачи. Я могу напрямую связаться с микросервисом с помощью IP задачи.
Но почему NLB Health Check дает сбой?