当前位置: 首页 > 知识库问答 >
问题:

在 OpenShift 源服务器中公开服务 - 路由器不工作

魏高邈
2023-03-14

我们团队决定尝试使用OpenShift Origin server部署服务。我们有一个单独的虚拟机,安装了OpenShift原始服务器,运行良好。我能够部署我们的本地docker映像,这些服务也运行良好——pod已启动并运行,获得了自己的IP,我可以从虚拟机访问服务endpoint。

问题是我无法让它工作,所以服务暴露在机器之外。我读到了路由器,它被认为是公开服务的正确方式,但它只是不起作用,现在是一些细节。

假设我的VM是10.48.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应用程序,RESTendpoint在端口8182公开。当我从托管它的虚拟机调用它时,它工作得很好:

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

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

我遵循了来自 CLI 和控制台 UI 的 OpenShift 开发文档中的步骤。路由器创建得很好,但是当我想检查其状态时,我得到这个:

$ 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个答案

赏光霁
2023-03-14

如果有人感兴趣,我终于找到了“解决方案”。问题是没有创建“路由器”服务 - 我不知道必须创建它。

一步一步地,为了创建这个服务,我遵循了OpenShift文档页面中的说明,这非常简单,但我无法使用管理员帐户登录。我使用了默认管理员帐户

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

 类似资料:
  • 我的插座有问题。io作为一名广播员与laravel echo合作。 我试过什么: 我可以看到用户在日志中连接: 我的队列正在运行,正在正确记录所有事件。 我可以在redis控制台中完美地看到redis我的事件和数据库通知。 但是没有广播任何事件,我也没有在laravel echo服务器控制台中看到它们。一切都在我的本地主机上运行,但在生产环境中没有,我失去了理智。 以下是我的laravel ech

  • 我正在aws中运行openshift 我有一个主节点和两个节点。如何向aws公共IP公开服务?我可以在内部访问服务: 我怎么把它暴露给公共IP呢?是否可以在openshfit web控制台中完成?我尝试使用https://docs.openshift.com/container-platform/3.4/dev_guide/expose_service/expose_internal_ip_ser

  • ASUS 华硕路由器 注意 Windows 所装 Home Assistant 无法使用此组件。 更新提示 本插件配置方法自 0.82 版本开始发生变化,请及时更新。 使用前请前往路由器管理界面 —— 系统管理 —— Enable SSH 或 启动 Telnet asuswrt: host: 路由器IP username: 路由器账号 password: 路由器密码 protoc

  • 我正在尝试将大量文件从服务器A传输到服务器B。我已经在A上设置了FTP(使用FileZilla)。 当我尝试从PC连接到A时,它工作正常。但当我尝试从B连接到A时,它不起作用。FTP用户登录,但目录列表命令一直处于停滞状态。 防火墙端口21已打开。我尝试了多台服务器、不同的FTP客户端,但没有用。除了FileZilla,我还尝试了内置FTP服务的ISS,得到了相同的结果。 使用相同凭据从本地完美连

  • 路由服务 首先,要理解什么是 router,router是提供跨 subnet 的互联功能的。比如用户的内部网络中主机想要访问外部互联网的地址,就需要router来转发(因此,所有跟外部网络的流量都必须经过router)。目前router的实现是通过iptables进行的。 同样的,router服务也运行在自己的名字空间中,可以通过如下命令查看: $ sudo ip net exec qroute

  • 我想把react-route添加到我的应用程序中,我有下面的代码: 更新:已安装react-router 3.0.2并工作。