Openshift 4 Ошибка датчика готовности

Я использую структуру микропрофилей Thorntail для мониторинга простого приложения службы отдыха. Развертывание приложения на openshift работает нормально, но не с монитором работоспособности после получения этого сообщения:

Ошибка проверки готовности: получите http://10.116.0.57:8080/health/live: наберите tcp 10.116.0.57:8080: connect: соединение отклонено

Но может получить доступ к службе здравоохранения, используя URL-адрес маршрута службы, например http://thorntail-myproject.apps-crc.testing/health/live и получите результат:

{status: UP, проверяет: [{name: server-state, status: UP}]}

Аннотации Liveness и Readiness включены в класс реализации HealthCheck. Также получите ответ службы при выполнении curl через оболочку удаленного контейнера пода.

Вот зависимости, которые я использую в pom.xml:

<dependencies>
  <dependency>
    <groupId>io.thorntail</groupId>
    <artifactId>jaxrs</artifactId>
  </dependency>
  <dependency>
    <groupId>io.thorntail</groupId>
    <artifactId>microprofile-health</artifactId>
  </dependency>
</dependencies>

Любые идеи?


person iperezmel78    schedule 24.07.2020    source источник
comment
Я не знаю, но вы пытались получить доступ к URL-адресу из модуля? Вы можете получить доступ к терминалу модуля через консоль OpenShift или с помощью oc rsh, а затем использовать curl. В любом случае, это будет мой первый шаг отладки.   -  person Ladicek    schedule 24.07.2020
comment
Уже пробовал это и тоже получил ответ от службы. Вопрос обновлен.   -  person iperezmel78    schedule 24.07.2020
comment
Возможно, вы используете Istio или что-то еще, что мешает работе с сетями контейнеров? Я помню, как пытался использовать простой HTTP-зонд и потерпел неудачу с Istio - пришлось заменить его командным зондом, который просто выполнял curl http://localhost:8080/health/....   -  person Ladicek    schedule 26.07.2020
comment
Привет, @Ladicek, спасибо за ответы !. Я не использую isitio, в моем pom.xml есть только зависимости jaxrs и микропрофиль-здоровье. Я обновил вопрос.   -  person iperezmel78    schedule 27.07.2020
comment
На данный момент я понятия не имею, в чем может быть проблема, но маловероятно, что это будет само приложение.   -  person Ladicek    schedule 27.07.2020


Ответы (1)


Проблема может быть вызвана многими причинами, но вот некоторые вещи, которые вы можете попробовать:

  1. Убедитесь, что объект службы для вашего развертывания / развертыванияConfig подключается к правильным модулям и правильным портам.
  2. Убедитесь, что объекты маршрута / входа подключаются к правильному объекту службы.

Две приведенные выше вещи кажутся правильными, поскольку вы можете получить доступ к URL-адресу маршрута, но мы не знаем ваших развертываний и их количества.

  1. Убедитесь, что ваши зонды Liveness и Readiness нажимают правильные: порты, страница (может быть где-то опечатка), протокол - вы используете HTTP или HTTPS?
  2. Если все вышеперечисленное верно, проверьте, есть ли у вас дополнительные сетевые политики для вашего пространства имен.
person hilchev    schedule 28.07.2020
comment
Привет @Hilchev. На Openshift развернуто только 2 модуля. Другой - mysql, и он отлично работает. Не знаю, в чем может быть причина проблемы. При выполнении curl из оболочки я копирую URL-адрес из зонда готовности, вставляю его и получаю результаты. И что касается вашей последней рекомендации, у меня нет настроенных сетевых политик в пространстве имен. В любом случае спасибо за советы !. - person iperezmel78; 05.08.2020
comment
По моему опыту, эти проблемы вызваны в основном двумя причинами: 1. Неправильная конфигурация службы (например, у объекта службы открыт неправильный порт) 2. Приложение неправильно настроено. В вашем случае вы можете перейти на страницу Health из оболочки, которая выглядит так, как будто случай №1. Ваша служба попадает в нужные пакеты? Предоставляет ли ваша служба правильные порты? Из ОБОЛОЧКИ вы попали на localhost или URL-адрес службы? Если это localhost, возможно, ваше приложение не прослушивает 0.0.0.0 и поэтому не может получать трафик за пределами localhost. - person hilchev; 13.08.2020