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

OpenShift原始路由主机名无法访问

裴泰平
2023-03-14

我有一个问题,基本上是关于OpenShift Origin路线的澄清。

我设法在本地VMWare安装的CentOS上设置OpenShift Origin版本1.4.0-rc1。我还能够为 nginx 拉取和设置映像,pod 状态显示正在运行。也能够在服务endpoint上访问nginx。现在,根据文档,如果我想在托管系统之外访问此nginx实例,我需要创建一个路由,我也这样做了。

混乱出现在OpenShift Web控制台的Create Route屏幕上,它生成主机名或允许输入主机名。我尝试了这两个选项,生成的主机名似乎是一个很长的子域类型的主机名,但它不起作用。我的意思是,我不能从网络中的任何地方访问这个主机名,包括主机操作系统。

总的来说,看起来像172.x.x.x的服务endpoint在运行OpenShift的本地机器上工作。但是为路由生成/输入的主机名在任何地方都不起作用。

请澄清此路由概念背后的想法以及如何从主机外部访问服务(同一网络的一部分)

共有1个答案

窦宏旷
2023-03-14

如留档所述:

OpenShift Origin路由在主机名(如www.example.com)上公开服务,以便外部客户端可以通过名称访问它。主机名的DNS解析与路由分开处理;您的管理员可能配置了一个云域,该域将始终正确解析到OpenShift Origin路由器,或者如果使用不相关的主机名,您可能需要独立修改其DNS记录才能解析到路由器。

重要的是要注意“路由”和“路由器”之间的区别。Opensfhit 路由器(如上所述)侦听对 Openshift 部署应用程序的所有请求,并且必须预先部署,以便路由正常工作。

https://docs.openshift.org/latest/architecture/core_concepts/routes.html

因此,一旦您部署并工作了路由器,您在openShift中创建的所有路由都应该解析该OpenShift路由器正在侦听的位置。例如,使用通配符配置您的DNS(这是dnsmaq通配符示例):

address=/.yourdomain.com/107.117.239.50

这样,您通向服务的所有“路线”应该是这样的:

    < li>service1.yourdomain.com < li>service2.yourdomain.com <李>...

希望这有所帮助

 类似资料:
  • 我已经部署了一个运行在OpenShift Origin上的grpc服务。这是由OpenShift服务支持的。该服务通过OpenShift路由公开。我正在尝试通过一个服务和路线将集装箱港口(50051)映射到8080港的外部世界,从而使这个吊舱可用。 服务试图公开的映像在其Dockerfile中具有: 路线如下: 服务端口:8080/TCP 目标端口:50051 在DeploymentConfig中

  • 我正在尝试安装带有2个节点的kubernetes集群(1.7.2版)。并使用weave作为cni。当加入另一个节点时,kubeadm会报错主机名 我使用的是 centos 7.3 已安装的yum包 步骤: 跑步的时候 我在weave-kube pod中看到以下错误:

  • 当我开始jenkins作业时,签出和构建阶段成功,但部署阶段失败,出现以下消息: 希望你能帮帮我。

  • 我在本地机器上的vbox上托管的ubuntu服务器上安装了openshift源(单节点集群),我需要使用其来自我的主机(客户端)的IP通过Web访问它,但它总是将我的IP重定向到本地主机172.0.0.1,如何克服这个问题?

  • 使用变量重写时 当使用标准Kubernetes时,我可以使用作为冲突解决程序: 但Openshift并没有提供这一点。我已经尝试使用容器的,它只是我集群中运行DNS服务器的节点之一,但它仍然无法解析。 最奇怪的部分是从容器终端内部使用中的名称服务器,它工作正常。 有没有一个等效于我可以使用的开放移位中的库伯内特斯DNS主机名,或者其他解决方案来解决这个问题?

  • 问题内容: 我已经按照Kelsey Hightower的指示从头开始创建了一个kubernetes集群。经过检查,一切正常,没有任何错误,但是在部署了第一个应用程序之后,我发现我的应用程序无法解析DNS。 我检查了我的coredns日志,并看到以下条目: 加上Kelsey的文档,我已经在Docker之上安装了calico。 我的怀疑: 我已经在Docker之上安装了Calico,但是我的kubel