openshift-origin - 在 OpenShift Origin Server 中公开服务 - 路由器不工作

标签 openshift-origin

我们的团队决定尝试使用 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 应用程序,在端口 8182 上公开了 REST 端点。 当我从托管它的 VM 调用它时,它工作得很好:

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

现在我想把它暴露在外面,所以我创建了一个路由器: oc adm router my-svc --ports='8182'

我按照 OpenShift dev doc 中的步骤操作来自 CLI 和控制台 UI。路由器创建得很好,但是当我想检查它的状态时,我得到了这个:

$ 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 doc page 中的说明进行操作这很简单,但我无法使用管理员帐户登录。 我使用默认管理员帐户

$ oc login -u system:admin

但不是使用可用的证书,它一直要求我输入密码,但它不应该。什么问题?我的环境变量被重置了,我不得不重新设置它们

$ 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 .之后证书设置正确并且登录按预期工作。作为管理员,我创建了路由器服务(第一个链接)并且路由开始工作 - 没有更多错误。 所以最后它变得非常简单和虚拟,但鉴于我没有使用 OpenShift 的经验,我很难找出发生了什么。希望对遇到同样问题的人有所帮助。

关于openshift-origin - 在 OpenShift Origin Server 中公开服务 - 路由器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250967/

相关文章:

postgresql - 如何在 openshift origin 中远程访问数据库服务

apache-zookeeper - 在 Fabric8 上部署 ZooKeeper 时出错

kubernetes - openshift pod 失败并频繁重启

docker - openshift错误无效ImageStreamTag的原因是什么?

ssl - TLS 终止 : reencrypt using a destinationCACertificate

apache-camel - openshift pod 的 CrashLoopBackOff 状态是什么?

OpenShift::如何在使用 "oc new-app"时跳过应用程序启动

docker - 如何在openshift/jenkins-1-centos7 docker容器中启用系统服务?

kubernetes - Openshift 上的 Spring Eureka