我在openshift原点v3中创建了一个postgresql实例。它运行正常,但是我不太明白为什么我不能远程到达它。
我已经暴露了一条路线:
$oc get routes
postgresql postgresql-ra-sec.192.168.99.100.nip.io postgresql postgresql None
$ oc get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
postgresql ClusterIP 172.30.59.113 <none> 5432/TCP 57m这是我的路线:

我正在尝试从ubuntu操作系统访问这个实例。我试着用psql来访问
$ psql --host=postgresql-ra-sec.192.168.99.100.nip.io --dbname=tdevhub
psql: could not connect to server: Connection refused
Is the server running on host "postgresql-ra-sec.192.168.99.100.nip.io" (192.168.99.100) and accepting
TCP/IP connections on port 5432?否则:
$ psql --host=postgresql-ra-sec.192.168.99.100.nip.io --port=80 --dbname=tdevhub
psql: received invalid response to SSL negotiation: H我检查了dns解析,它似乎正确地工作了:
$ nslookup postgresql-ra-sec.192.168.99.100.nip.io
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: postgresql-ra-sec.192.168.99.100.nip.io
Address: 192.168.99.100编辑
那这个呢?

为什么会有这种重定向?我能在port-forwarding之前修改一下吗?
发布于 2018-07-03 08:42:10
通过路由公开服务意味着启用外部HTTP通信量。对于Postgresql这样的服务,这将不像您的示例那样工作。
另一种选择是将端口转发到本地计算机并以这种方式连接。例如,运行oc get pods,然后运行oc port-forward <postgresql-pod-name> 5432,这将允许您创建TCP连接:
在主机上运行psql --host=localhost --dbname=tdevhub来验证这一点。
还有一种选择,至少在某些情况下分配外部IP以允许入口通信。参见OpenShift文档。这将是更复杂的实现,但一个永久性的解决方案,而不是港口转发。但是,看起来您正在运行oc cluster up或minishift,所以不确定这是否可行。
发布于 2022-04-20 12:14:57
理论上,虽然端口转发的答案是正确的,也是我使其工作的唯一方法,但在OpenShift3.x中,您可以为这个https://documentation.its.umich.edu/node/2126使用一个tcp路由。
然而,在Openshift 4.x中,它似乎不起作用(至少对我是这样)。
另外,我个人不喜欢端口转发,因为这假设您必须与一个用户建立连接,该用户可以连接到集群,并拥有名称空间的权限来完成它需要做的事情。我宁愿建议入口的解决方案
https://stackoverflow.com/questions/51148530
复制相似问题