2017-02-15 3 views
1

Наша команда решила попробовать использовать сервер OpenShift Origin для развертывания служб. У нас есть отдельная виртуальная машина с установленным и работающим сервером OpenShift Origin. Я смог развернуть наши локальные изображения докеров, и эти службы тоже работают отлично - Pods запущены и запущены, получают свой собственный IP-адрес, и я могу достичь конечных точек службы от VM.Служба Expose в OpenShift Origin Server - маршрутизатор не работает

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

Допустим, что моя виртуальная машина 10.48.1.1. Pod с Docker контейнера с одним из моих услуг работает на IP 172.30.67.15:

~$ oc get svc 
NAME    CLUSTER-IP  EXTERNAL-IP PORT(S) AGE 
my-svc    172.30.67.15  <none>  8182/TCP 4h 

сервис просто Spring загрузки приложения с REST конечной точки экспонировались на порту 8182. Whe Я называю это от VM хостинг это, он работает просто отлично:

$ curl -H "Content-Type: application/json" http://172.30.67.15:8182/home 
{"valid":true} 

Теперь я хотел выставить его на улицу, поэтому я создал маршрутизатор: ос адм маршрутизатор мой-SVC --ports = «8182»

я следовал шаги с OpenShift dev doc как от CLI, так и от консольного интерфейса , Маршрутизатор получает создан в порядке, но потом, когда я хочу, чтобы проверить его состояние, я получаю это:

$ oc status 
In project sample on server https://10.48.3.161:8443 
... 
Errors: 
    * route/my-svc is routing traffic to svc/my-svc, but either the administrator has not installed a router or the router is not selecting this route. 

Я не мог найти что-нибудь об этой ошибке, которая может помочь мне решить эту проблему - кто-нибудь был подобный вопрос? Есть ли другой (лучший/правильный?) Способ разоблачения конечной точки обслуживания? Я новичок в OpenShift, поэтому любые предложения будут связаны.

ответ

1

Если кому-то интересно, я наконец нашел «решение». Проблема заключалась в том, что не было создано никакого сервиса «router» - я не знал, что он должен быть создан.

Шаг за шагом, чтобы создать эту службу, я выполнил инструкции от OpenShift doc page, которые были довольно легкими, но я не смог войти в систему с помощью учетной записи администратора. я использовал учетную запись администратора по умолчанию

$ oc login -u system:admin 

Но вместо того, чтобы, используя имеющийся сертификат, он продолжал спрашивать меня пароль, но он не должен. Что случилось? Мой Env переменных были сброшены, и я должен был установить их снова

$ export KUBECONFIG="$(pwd)"/openshift.local.config/master/admin.kubeconfig 
$ export CURL_CA_BUNDLE="$(pwd)"/openshift.local.config/master/ca.crt 
$ sudo chmod +r "$(pwd)"/openshift.local.config/master/admin.kubeconfig 

Это был один из первых шагов, описанных в OpenShift документации OpenShift docs. После этого сертификат устанавливается правильно, и логин работает, как ожидалось. В качестве администратора я создал услугу маршрутизатора (1-я ссылка), и маршрут начал работать - больше никаких ошибок. Итак, в итоге это получилось довольно простым и фиктивным, но, учитывая, что у меня не было опыта работы с OpenShift, мне было трудно узнать, что происходит. Надеюсь, это поможет, если у кого-то будет такая же проблема.