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

从远程主机访问OpenShift转发端口

司国源
2023-03-14

我想使用这里描述的端口转发连接到运行在OpenShift (3.9)中的PostgreSQL (9.6)集群。为此,我在一个跳转主机(在OpenShift集群之外)上设置并检查端口转发,如下所示:

oc port-forward $pod 5432:5432
netstat -ln | grep 5432 # "tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN"
psql -U postgres -h localhost # OK
psql -U postgres -h $(hostname -i) # error: "connection refused"

因此,端口转发似乎只监听< code>localhost,而不监听主机的其他IP地址。最终,我想从另一个远程主机通过跳转主机连接到数据库,所以“本地主机”是不够的。

我如何设置(OpenShift)端口转发,以便它也允许从远程主机访问转发的端口?我认为Iptables(结合OpenShift端口转发)可以做到这一点,但我还不知道如何以及是否有更简单的方法。(跳转主机运行Debian 9.5。)

更新结合SSH隧道和OpenShift(库伯内特斯)端口转发的方法显然可以解决这个问题。

在跳转主机上(第一次会议):

ssh -N -L $(hostname -i):5432:localhost:5433 $(whoami)@$(hostname)

在跳转主机上(第2次会话):

oc port-forward $pod 5433:5432

在远程主机上:

psql -U postgres -h jump-host

共有2个答案

艾泉
2023-03-14

就我个人而言,我认为port-Advanced只允许本地访问[0],所以没有比你说的更简单的方法了。即使可以启用远程访问,但您应该配置iptable以允许5432端口在节点上。因此,如果您希望从远程访问Pod,您应该使用 <罢工> 路由或 服务就像Pods之间的通信一样。

[0]端口转发

You can use the CLI to forward one or more local ports to a pod. This allows you to listen on a given or random port locally, and have data forwarded to and from given ports in the pod.
白芷阳
2023-03-14

您可以找到关于端口转发侦听地址精彩讨论,以及关于https://github.com/kubernetes/kubernetes/issues/43962和https://github.com/kubernetes/kubernetes/pull/46517.的一些临时解决方案

在PR被合并、在上游kubernetes中发布并更新该版本后,您将有一个简单的方法来实现这一点(我猜从现在起至少需要半年时间)。目前你被困在变通方法上。

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

  • 我有一个无头CentOS 7盒子,我有访问权限。我已经成功安装了OpenShift v4.2-代码就绪容器版本。我能够使用工具、创建项目、从服务访问公开路由等。 我想探索来自Istio的可视化——服务网格。我如何远程访问web控制台,以便可以浏览服务网格? Katacoda似乎没有OpenShift 4.2集群。

  • 问题内容: 我将开发环境设置为vmware中的Ubuntu服务器(安装了LAMP)。vmware在我的本地Windows 7计算机上运行。当我尝试通过HeidiSQL程序访问我的mysql服务器时,连接失败。我得到: 但是,我可以通过PhpMyAdmin访问数据库服务器。MySQL正在运行,我的连接凭据和端口均正确。 我读到您应该输入要连接的计算机的IP地址,作为my.cnf文件中的“绑定地址”。

  • 我在远程VPS上的docker-compose网络中运行容器。我希望能够从我的本地主机访问在这些容器中运行的数据库。 例如,如果容器和位于VPS上的容器网络中,我希望从计算机的访问。Kubernetes的CLI允许使用。 编辑:我已经接受了Ali Tou的回答,但是,如果能看到一个不需要重新启动容器来重新配置其端口以将它们暴露到主机上的解决方案,那就太好了。 编辑2:我在一篇相关的文章https:

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

  • 问题内容: 我有一个运行詹金斯的码头集装箱。作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器。是否可以将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器? 编辑:我正在Linux机器上本地运行docker。 更新: 除了下面的@larsks答案之外,要从主机获取主机IP的IP地址,我还要执行以下操作: 问题答案: 在Linux上本地运行Docker时,您可以使用接口