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

标签 postgresql openshift-origin

我有一个正在运行的 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 路由器这样的路由器。这不起作用,因为 HA2 路由器通过 HTTP 在 Postgresql 中公开服务...我们需要通过 TCP 在端口 5432 上连接到 Postgresql pod。

谢谢。

最佳答案

找到了。 Openshift v3.* 与 SathAk 上面针对 v2.* 发布的“rhc”命令有类似的命令(谢谢!)。

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

oc get pods | grep 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

关于postgresql - 如何在 openshift origin 中远程访问数据库服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338964/

相关文章:

docker - 未找到 openshift v3 pod 文件

java - Elasticsearch 不处理 liquibase 加载的数据

sql - Postgresql使用sql将相邻数据平均到新表中

openshift-origin - OpenShift 聚合日志记录 : Parse Apache access log

javascript - 如果我在 openshift origin 上多次调用相同的rest Api,为什么我会得到readystate未定义和状态0?

docker - 在 OpenShift Origin 上删除未使用的 docker 镜像的正确方法

algorithm - 具有至少两个差异的唯一字符串

java - 将 Apache Cayenne 从 Oracle 移植到 PostgreSQL

ruby-on-rails - 如何使用 PostgreSQL 全文搜索返回部分短语匹配而不返回太多行?

kubernetes - oc cluster up 超时等待条件