2017-02-15 1 views
1

Unser Team entschied sich, den OpenShift Origin-Server zum Bereitstellen von Diensten zu verwenden. Wir haben eine separate VM mit OpenShift Origin Server installiert und funktioniert gut. Ich konnte unsere lokalen Docker-Images bereitstellen und diese Services laufen ebenfalls gut. Die Pods sind betriebsbereit, haben ihre eigene IP und ich kann die Service-Endpunkte von der VM aus erreichen.Expose-Dienst in OpenShift Origin Server - Router funktioniert nicht

Das Problem ist, ich kann es nicht funktionieren, so dass die Dienste außerhalb der Maschine ausgesetzt sind. Ich lese über die Router, die die richtige Art sind, Dienste offenzulegen, aber es wird einfach nicht funktionieren, jetzt einige Details.

Sagen wir, meine VM ist 10.48.1.1. Der Pod mit Containern Docker mit einem meinem Dienst auf IP läuft 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 

Der Service ist einfach Frühlings-Boot-App mit REST-Endpunkt im Hafen ausgesetzt 8182. Whe ich es von VM nenne es Hosting, es funktioniert gut:

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

Jetzt wollte ich es draußen belichten, so habe ich einen Router: oc adm Router my-svc --ports = '8182'

ich die Schritte gefolgt von OpenShift dev doc sowohl über die CLI- als auch über die Konsolen-Benutzeroberfläche . Der Router wird erstellt in Ordnung, aber wenn ich dann seinen Status überprüfen möge, bekomme ich diese:

$ 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. 

Ich kann nichts über diesen Fehler finden, die mir das Problem zu lösen helfen könnte - hat jemand ähnliches Problem gehabt? Gibt es eine andere (bessere/richtige?) Möglichkeit, den Service-Endpunkt offenzulegen? Ich bin neu bei OpenShift, daher werden alle Vorschläge berücksichtigt.

Antwort

1

Wenn jemand interessiert, fand ich endlich die "Lösung". Das Problem war, dass kein "Router" -Dienst erstellt wurde - ich wusste nicht, dass er erstellt werden muss.

Schritt für Schritt, um diesen Service zu erstellen, folgte ich den Anweisungen von OpenShift doc page, die ziemlich einfach waren, aber ich konnte nicht mit Administratorkonto anmelden. Ich verwendete Standard-Admin-Konto

$ oc login -u system:admin 

Aber statt zur Verfügung Zertifikat, es hielt mich Passwort zu fragen, aber es sollte nicht. Was war falsch? Meine env Variablen wurden zurückgesetzt, und ich musste sie wieder gesetzt

$ 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 

Dies war einer der ersten Schritte in Openshift docs beschrieben OpenShift docs. Danach ist das Zertifikat korrekt eingestellt und der Login funktioniert wie erwartet. Als Admin habe ich einen Router Service (1. Link) erstellt und die Route hat angefangen zu arbeiten - keine Fehler mehr. Also am Ende war es ziemlich einfach und dumm, aber da ich keine Erfahrung mit OpenShift hatte, war es schwer für mich, herauszufinden, was vor sich geht. Ich hoffe, es hilft, wenn jemand das gleiche Problem hat.

Verwandte Themen