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

时间:2016-12-27 04:22:35

标签: postgresql openshift-origin

我有一个Openshift Origin 3. *群集正在运行。它工作得很好,我有一些应用程序在那里运行,由他们自己的应用程序服务器,数据库服务器和ldap服务器Openshift服务/部署/ pods组成。

这些Web应用程序通过HA2路由器公开。所有这些都很好用,我们可以使用我们通过HA2路由器设置的Openshift路由访问webapps。但是,我们希望使用像&ps; psql'这样的工具访问在Openshift中运行的Postgresql数据库服务。 (命令行Postgresql客户端)或PgAdmin(连接到Postgresql的GUI)。

我很难知道如何做到这一点。 Openshift中的服务或pod可以毫无困难地连接到Postgresql pods - 因为他们Openshift在这些pod之间执行自己的DNS和路由。但是,我熟悉这种通信的唯一方法是通过像路由器这样的路由器从外部发生。这不起作用,因为HA2路由器通过HTTP公开Postgresql中的服务......我们需要通过端口5432上的TCP连接到Postgresql pod。

感谢。

2 个答案:

答案 0 :(得分:4)

找到它。 Openshift v3。*与上面发布的“rhc”命令SathAk(感谢!)有类似的命令,用于v2。*。

使用“oc”命令登录您的Openshift项目后,您可以运行:

oc get pods | grep Running

将显示您的Running pod列表。找到Postgresql(或任何其他您想通过其公开端口直接连接的pod),然后运行:

oc port-forward [name of postgresql pod] 5432:5432

这会将所有流量从pod的5432端口转发到本地5432端口,您可以使用GUI PgAdmin,Valentina等工具或命令行psql连接到pod中的Postgresql实例,如下所示:< / p>

 psql -h localhost -U user -d database -p 5432 -W

答案 1 :(得分:1)

您可以使用

  

端口转发

为了充分利用“rhc port-forward”工具,请确保您拥有最新版本的客户端工具。在通过ruby gem安装客户端工具的系统上,输入以下命令:

$ sudo yum update rhc

第2步

现在您已安装了最新的客户端工具,您应该可以访问“rhc port-forward”命令。一旦调用该命令,客户端工具将扫描您部署的应用程序并查找可用于转发的任何嵌入式服务。然后,客户端工具将配置本地系统,以便能够连接到远程应用程序的可用服务。

$ rhc port-forward -a exampleapp


Forwarding ports ...

To connect to a service running on OpenShift, use the Local address

Service    Local               OpenShift
---------- -------------- ---- ----------------
httpd      127.0.0.1:8080  =>  19.66.2.6:8080
postgresql 127.0.0.1:5432  =>  19.66.2.7:5432

Press CTRL-C to terminate port forwarding

第3步

您可以看到命令现已将应用程序中的端口5432映射到本地计算机上的端口5432。您现在可以连接到端口5433上的本地环回地址(127.0.0.1)以连接到在设备上运行的PostgreSQL。

$ psql -h 127.0.0.1 -p 5433 -U adminm4rvN42 exampleapp
Password for user adminm4rvN42:
psql (9.3.2, server 9.2.4)
Type "help" for help.

exampleapp=# <emphasis role="strong">\dt</emphasis>
                List of relations
 Schema |      Name       | Type  |    Owner
--------+-----------------+-------+--------------
 public | long_adjective  | table | adminm4rvN42
 public | noun            | table | adminm4rvN42
 public | short_adjective | table | adminm4rvN42
(3 rows)

exampleapp=#

或者也可以连接到pgadmin工具。

您可以访问该链接以获得进一步说明

https://blog.openshift.com/getting-started-with-port-forwarding-on-openshift/ https://developers.openshift.com/managing-your-applications/port-forwarding.html https://docs.openshift.com/enterprise/3.0/dev_guide/port_forwarding.html