[英]Openshift: Expose postgresql remotely
我在我的 openshift origin 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
之前更改它嗎?
通過路由公開服務意味着您啟用外部HTTP流量。 對於像Postgresql這樣的服務,根據你的例子,這不會起作用。
另一種方法是將端口轉發到本地計算機並以此方式連接。 例如,運行oc get pods
然后運行oc get pods
oc port-forward <postgresql-pod-name> 5432
,這將允許您創建TCP連接:
在主機上運行psql --host=localhost --dbname=tdevhub
來驗證這一點。
在某些情況下,還有一個選項,至少可以分配外部IP以允許入口流量。 請參閱OpenShift文檔 。 這將是更復雜的實現,但與端口轉發相反的永久解決方案。 看起來你正在運行oc cluster up
或minishift
但是不確定這是多么可行。
從理論上講,雖然端口轉發的答案是正確的,也是我讓它工作的唯一方法,但我會說在 Openshift 3.x 中,你可以為這個https://documentation.its.umich.edu/node/使用 tcp 路由2126
但是它在 Openshift 4.x 中似乎不起作用(至少對我而言)
此外,我個人不喜歡端口轉發,因為這假設您必須與可以連接到集群的用戶建立連接,並且具有命名空間的權限來執行它需要執行的操作。 我寧願建議入口解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.