【发布时间】:2017-02-16 23:48:51
【问题描述】:
我们的团队决定尝试使用 OpenShift Origin 服务器来部署服务。 我们有一个单独的虚拟机,安装了 OpenShift Origin 服务器并且工作正常。我能够部署我们的本地 docker 映像,并且这些服务也运行良好 - Pod 已启动并运行,获得自己的 IP,我可以从 VM 访问服务端点。
问题是我无法让它工作,所以服务暴露在机器之外。我读到了路由器,这被认为是公开服务的正确方式,但它不起作用,现在是一些细节。
假设我的虚拟机是 10.48.1.1。带有我的一项服务的 docker 容器的 Pod 正在 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 Boot 应用程序,其 REST 端点暴露在端口 8182 上。 当我从托管它的虚拟机中调用它时,它工作得很好:
$ curl -H "Content-Type: application/json" http://172.30.67.15:8182/home
{"valid":true}
现在我想把它暴露在外面,所以我创建了一个路由器: oc adm 路由器 my-svc --ports='8182'
我在 CLI 和控制台 UI 中都遵循了 OpenShift dev doc 中的步骤。路由器创建得很好,但是当我想检查它的状态时,我得到了这个:
$ 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 的新手,所以任何建议都会被采纳。
【问题讨论】:
标签: openshift-origin