Сбой проверки работоспособности AWS ALB

#amazon-web-services #docker #jenkins #aws-application-load-balancer #health-check

Вопрос:

Я создал экземпляр AWS EC2 и запустил в нем контейнер jenkins, вот подробности :

 CONTAINER ID  IMAGE                      COMMAND  CREATED       STATUS           PORTS                                             NAMES
xxxxxxxxx  docker.io/jenkins/jenkins           47 hours ago  Up 47 hours ago  0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp  jenkins
 

после этого я настроил AWS ALB для прослушивания порта 443 и предоставил этому экземпляру jenkins контейнер jenkins в качестве целевого.

Сведения о проверке работоспособности балансировщика нагрузки приведены ниже: введите описание изображения здесь

Я также пробовал использовать порт трафика, но это также нездорово.

после этого мой балансировщик нагрузки может переслать запрос экземпляру, и я могу связаться с контейнером Дженкинса с DNS балансировщика нагрузки.

Но мой балансировщик нагрузки показывает, что моя цель нездорова, введите описание изображения здесь

Может ли кто-нибудь помочь мне понять, почему моя цель нездорова и какие шаги я мог бы предпринять, чтобы сделать ее здоровой.

Ответ №1:

Дженкинсу EC2 следует назначить группу безопасности, которая разрешает доступ к порту Дженкинса (8080) из ALB. и вы обеспечите полный исходящий доступ в Интернет для Дженкинса, чтобы можно было устанавливать обновления и плагины.

Дженкинсу требуется аутентификация, поэтому, когда ALB выполняет проверку работоспособности как анонимный пользователь, он получает страницу с запрещенным доступом 403, но при проверке работоспособности http ожидается код 200 ok, поэтому вы можете переключить это на проверку работоспособности tcp.

Комментарии:

1. мой экземпляр jenkins уже разрешает порт 8080 из любого места, и исходящие правила также настроены для всех.

2. Это балансировщик нагрузки приложений , ALB работает на уровне 7 na, он будет работать только на http/https. невозможно настроить проверку работоспособности tcp

3. Не могли бы вы попробовать 403 в качестве кода успеха вместо 200

4. но это всего лишь обходной путь, верно? предоставление кода 403 в качестве статуса » ок » не кажется идеальным решением, это не объясняет, почему loadbalancer получал ошибку 403

Ответ №2:

Используйте /login вместо / Проверьте также номер порта. Я использую 8080