#amazon-web-services #amazon-elb
#amazon-web-services #amazon-elb
Вопрос:
У меня есть кластер ecs fargate с ALB для маршрутизации трафика. Контейнеры docker прослушивают порт 9000.
Мои контейнеры доступны через dns-имя alb по протоколу https. Это работает. Но они продолжают останавливаться / удаляться из целевой группы и перезапускаться только для того, чтобы перейти в нерабочее состояние сразу после их регистрации в целевой группе.
У ALB есть только один прослушиватель на 443. Группы безопасности настроены таким образом, что sg-alb
разрешает исходящий трафик с порта 9000 на sg-fargate
и sg-fargate
разрешает весь входящий трафик с порта 9000 sg-alb
.
Целевая группа также настроена на использование порта 9000.
Я не уверен, в чем проблема или как ее отладить.
Все настроено с помощью cdk. Не уверен, что это актуально.
Комментарии:
1. Я добавил правила «Разрешить весь трафик из / в любое место» в оба sg. Теперь я получаю исправные экземпляры только в одной из двух моих AZ / подсетей. Экземпляры в других AZ по-прежнему отображаются как неработоспособные и разряженные.
Ответ №1:
Как оказалось, это не было проблемой с группами безопасности. Это было просто совпадением, что это сработало в то время, когда я менял группы безопасности.
Похоже, контейнеры запускаются недостаточно быстро, чтобы принимать подключения от alb, когда он запускает проверки работоспособности.
Что помогло:
- изменение
healthCheckGracePeriod
на две минуты - настройка параметров проверки работоспособности для целевой группы,
interval
,unhealthyThreshold
,healthyThreshold
Кроме того, в журналах моего приложения похоже, что служба получает два запроса на проверку работоспособности одновременно. По умолчанию unhealthy threshold
установлено значение 2. Возможно, служба была помечена как неработоспособная только после одной проверки работоспособности.
Комментарии:
1. Привет, @Saskia, не могли бы вы, пожалуйста, поделиться конфигурацией, которую вы использовали для параметров проверки работоспособности? Моя конфигурация — интервал = 5 минут, тайм-аут = 1 минута, healthyThresholdCount = 5, unhealthyThresholdCount = 3. Приложение работает нормально около 30 минут, а затем работоспособность начинает снижаться, даже если задачи выполняются нормально и в журналах не видно проблем. Я использовал точно такие же ресурсы aws, что и вы, с ECS Fargate cluster и ALB с необходимыми группами безопасности. Хочу отметить, что приложение работает нормально и отвечает на запрос api в течение тех 30 минут, когда работоспособность хорошая.
2. @horizon7 Прошу прощения. У нас больше нет этой проблемы. Так что у меня больше нет цифр. Но, похоже, ваша проблема в любом случае другая, поскольку мои службы даже не запускались корректно.