Сбой проверки работоспособности балансировщика нагрузки приложения AWS - PullRequest
1 голос
/ 04 апреля 2019

У меня есть кластер ecs fargate с ALB для маршрутизации трафика. Контейнеры Docker прослушивают порт 9000.

Мои контейнеры доступны по имени alb dns через https. Это работает. Но их продолжают останавливать / отменять регистрацию в целевой группе и перезапускать, чтобы они находились в нездоровом состоянии сразу после их регистрации в целевой группе.

У ALB только один слушатель на 443. Группы безопасности настроены таким образом, что sg-alb разрешает исходящий трафик через порт 9000 до sg-fargate, а sg-fargate разрешает весь входящий трафик через порт 9000 с sg-alb.

Целевая группа также настроена на использование порта 9000.

Я не уверен, в чем проблема или как ее отладить.

Все настроено с помощью cdk. Не уверен, что это актуально.

1 Ответ

1 голос
/ 10 апреля 2019

Как оказалось, это не было проблемой с группами безопасности. Это было просто случайно, что это сработало в то время, когда я сменил группы безопасности.

Кажется, что контейнеры запускаются недостаточно быстро, чтобы принимать соединения от alb, когда он запускает проверки работоспособности.

Что помогло:

  • меняется healthCheckGracePeriod до двух минут
  • настройка параметров проверки здоровья для целевой группы, interval, unhealthyThreshold, healthyThreshold

Кроме того, в журналах моего приложения похоже, что служба получает два запроса проверки работоспособности одновременно. По умолчанию для unhealthy threshold установлено значение 2. Возможно, служба была помечена как неработоспособная только после одной проверки работоспособности.

...