【问题标题】:how to access database service remotely in openshift origin如何在openshift源中远程访问数据库服务
【发布时间】:2016-12-27 04:22:35
【问题描述】:

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

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

我不知道如何做到这一点。 Openshift 中的服务或 pod 连接到 Postgresql pod 没有问题——因为它们 Openshift 在这些 pod 之间执行自己的 DNS 和路由。然而,我所熟悉的从外部进行通信的唯一方法是通过像 HA2-router 这样的路由器。这不起作用,因为 HA2-router 通过 HTTP 在 Postgresql 中公开服务......我们需要通过 TCP 连接到 Postgresql pod,端口为 5432。

谢谢。

【问题讨论】:

    标签: postgresql openshift-origin


    【解决方案1】:

    找到了。 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 实例,如下所示:

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

    【讨论】:

      【解决方案2】:

      你可以使用

      端口转发

      为了充分利用“rhc 端口转发”工具,请确保您拥有最新版本的客户端工具。在通过 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) 以连接到运行在 gear 上的 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

      【讨论】:

      • 谢谢。 “rhc”适用于 Openshift v2。 Openshift v3.* 完全不同,基于容器化模型与盒式模型。 Openshift v3 没有“rhc”。*
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多