Как просмотреть модуль маршрутов в OpenShift

#openshift

#openshift

Вопрос:

Я создал маршруты для своего сервиса в OpenShift,

 oc get routes

NAME              HOST/PORT                             PATH      SERVICES          PORT 
simplewebserver   simpleweb.apps.devcluster.os.fly.com            simplewebserver   9999                   
 

Когда я запустил команду: curl http://simpleweb.apps.devcluster.os.fly.com/world

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

Мой вопрос в том, как найти модуль маршрута в OpenShift или как найти некоторую информацию об активности маршрута при доступе к маршруту?

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

1. Можете ли вы включить конкретное сообщение об ошибке, которое вы видите при попытке доступа к вашей веб-службе?

Ответ №1:

Вы можете проверить журналы маршрутизатора в контейнере logs модулей маршрутизатора. в нашем кластере OCP я мог видеть модули маршрутизаторов в пространстве имен openshift-ingress.

 oc get pods -n openshift-ingress
NAME                              READY   STATUS    RESTARTS   AGE
router-default-5f9c4b6cb4-12121a   2/2     Running   0          40h
router-default-5f9c4b6cb4-12133a   2/2     Running   0          40h
 

Чтобы получить журналы, используйте команду ниже,

 oc -n openshift-ingress -c logs logs -f <router_pod_name> 
 

Также убедитесь, что журналы haproxy включены, чтобы узнать, какие URL-адреса попадают через маршрутизатор.

https://access.redhat.com/solutions/3397701

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

1. Привет, в вашей среде pod имеет два контейнера. Но почему-то в моей среде я вижу pod только с одним контейнером. Мой вопрос в том, какой контейнер я пропускаю? Или как развернуть другой контейнер, как у вас

2. Это зависит от количества реплик, настроенных в развертывании, 2 контейнера в моей области служат той же цели для маршрутизации трафика к целевым службам

Ответ №2:

Поскольку информация о вашей проблеме ограничена. Вот несколько вещей, которые вы можете попробовать.

  1. Попробуйте выполнить curl с помощью порта curl -kv http://simpleweb.apps.devcluster.os.fly.com:9999
  2. Доступ к журналам модуля, для которых был создан маршрут. Убедитесь, что служба simplewebserver использует правильный селектор для маршрутизации трафика в модуль. Сделайте a oc describe service simplewebserver , чтобы увидеть используемые селекторы.
  3. Проверьте, не блокирует ли какая-либо сетевая политика внешний трафик.
  4. Проверьте, можете ли вы получить доступ к целевому модулю, используя эту службу, из того же пространства имен. Вы можете сделать это, выполнив rsh для модуля, а затем получить доступ к службе с помощью: curl -kv http://servicename.projectname.svc.cluster.local

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

1. Можно ли проверить модули маршрутизатора OpenShift?

2. Каков результат curl, который вы пытаетесь выполнить?

3. « curl -kv simpleweb.apps.devcluster.os.fly.com/world * Попытка 9.30.180.222… * TCP_NODELAY установлен * Подключен к simpleweb.apps.devcluster.os.fly.com (9.30.180.222) порт 80 (#0) > GET /world HTTP/1.1 > Хост: simpleweb.apps.devcluster.os.fly.com > Пользовательский агент: curl / 7.64.1 > Принять: / > * HTTP 1.0, предположим, закрыть после тела < HTTP / 1.0 Служба 503 недоступна «

4. Приложение недоступно Приложение в настоящее время не обслуживает запросы в этой конечной точке. Возможно, он не был запущен или все еще запускается.

5. 503 довольно общий. Я могу думать только о следующем, о котором я уже упоминал -> 1. Проверьте, использует ли ваша служба правильный селектор 2. oc get endpoints simplewebserver чтобы проверить, указывают ли службы на правильные конечные точки. 3. Подтвердите, готов ли модуль и трафик 4. Убедитесь, что маршрут указывает на правильный сервис / порт