Получите нездоровый ответ во время развертывания Blue / Green на AWS ECS - PullRequest
0 голосов
/ 04 ноября 2019

На основании документа AWS развертывание blue/green должно обеспечивать нулевое время простоя при развертывании приложения. У меня есть несколько служб, работающих на ECS Fargate. И load balancer проверяет работоспособность этих контейнеров. Иногда я вижу это сообщение об ошибке в событиях службы ECS во время развертывания:

service my-api deregistered 1 targets in target-group my-api
f8c332f7-ac61-4791-9b08-6fe2ee4de792
2019-10-31 17:05:00 +1100
service my-api (port 443) is unhealthy in target-group my-api due to (reason Request timed out).
a306dabc-3961-42ba-8a08-814934409c9d
2019-10-31 17:03:32 +1100
service my-api registered 1 targets in target-group my-api
4333368f-682b-461f-9a3b-f38609b32589

Оно говорит service my-api (port 443) is unhealthy. И это восстанавливается через несколько секунд. Интересно, почему он сообщает unhealthy. Я понимаю, что развертывание не должно происходить до тех пор, пока оно не станет здоровым.

1 Ответ

0 голосов
/ 04 ноября 2019

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

Но большев частности, чтобы ответить на ваш вопрос, если я правильно понимаю ваш журнал, кажется, что ваши цели отменяют регистрацию в целевой группе, что соответствует целевой группе, не прошедшей проверку работоспособности до регистрации следующей цели. (Конфигурация вашей целевой группы в настоящее время состоит из 1 цели?)

Я бы посоветовал настроить сине-зеленое развертывание следующим образом. Использование вашего ALB / NLB имеет две отдельные целевые группы, каждая из которых обслуживает либо синюю, либо зеленую среду.

Как только вы захотите обновить свой сервис, убедитесь, что ваш ALB / NLB направляет соответствующий «производственный» трафики к синим, и к зеленым целевым группам.

Наконец, настройте свой ALB / NLB так, чтобы трафик направлялся исключительно к зеленой целевой группе, и используйте синюю целевую группу в качестве резервной копии на случай отката.

Я бы посоветовал обратиться к этому образцу блога руководства от AWS, в котором используются сервисы Amazon Code * и AWS Lambda для автоматизации большей части процесса.

Или, альтернативно, загляните в этот блог о том, как развернуть сине-зеленое развертывание с помощью Spotinst Ocean.

...