#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-адреса попадают через маршрутизатор.
Комментарии:
1. Привет, в вашей среде pod имеет два контейнера. Но почему-то в моей среде я вижу pod только с одним контейнером. Мой вопрос в том, какой контейнер я пропускаю? Или как развернуть другой контейнер, как у вас
2. Это зависит от количества реплик, настроенных в развертывании, 2 контейнера в моей области служат той же цели для маршрутизации трафика к целевым службам
Ответ №2:
Поскольку информация о вашей проблеме ограничена. Вот несколько вещей, которые вы можете попробовать.
- Попробуйте выполнить curl с помощью порта
curl -kv http://simpleweb.apps.devcluster.os.fly.com:9999
- Доступ к журналам модуля, для которых был создан маршрут. Убедитесь, что служба
simplewebserver
использует правильный селектор для маршрутизации трафика в модуль. Сделайте aoc describe service simplewebserver
, чтобы увидеть используемые селекторы. - Проверьте, не блокирует ли какая-либо сетевая политика внешний трафик.
- Проверьте, можете ли вы получить доступ к целевому модулю, используя эту службу, из того же пространства имен. Вы можете сделать это, выполнив 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. Убедитесь, что маршрут указывает на правильный сервис / порт