2017-01-23 100 views
0

我設置的OpenShift環境在我的Mac具有以下版本:Openshift:無法通過羣集主機名來訪問服務

Mac OS Sierra, Version:10.12.2 (16C67) 
oc v1.5.0-alpha.2+e4b43ee 
kubernetes v1.5.2+43a9be4 
features: Basic-Auth 

我能得到開發者版本做一個oc cluster up運行,並給了developer用戶管理權利。接下來,我添加postgres容器通過發出以下命令:

oc new-app https://github.com/MojoJojo/authenticated-payments.git --name="postgres-keycloak" -l name="postgres-keycloak" --context-dir=postgres-keycloak 

的命令和預期一樣,用Cluster HostnameCluster IP地址創建一個服務。在「羣集Hostname`在管理控制檯被反射爲:

~ ❯❯❯ oc describe service/postgres-keycloak 
Name:   postgres-keycloak 
Namespace:  authenticated-collections 
Labels:   app=postgres-keycloak 
       name=postgres-keycloak 
Selector:  app=postgres-keycloak,deploymentconfig=postgres-keycloak,name=postgres-keycloak 
Type:   ClusterIP 
IP:    172.30.123.160 
Port:   5432-tcp 5432/TCP 
Endpoints: 
Session Affinity: None 
No events. 


~ ❯❯❯ oc describe pods/postgres-keycloak-2-8r9n5                                          ⏎ 
Name:   postgres-keycloak-2-8r9n5 
Namespace:  authenticated-collections 
Security Policy: restricted 
Node:   192.168.65.2/192.168.65.2 
Start Time:  Mon, 23 Jan 2017 03:24:41 +0200 
Labels:   app=postgres-keycloak 
       deployment=postgres-keycloak-2 
       deploymentconfig=postgres-keycloak 
       name=postgres-keycloak 
Status:   Running 

接着,我創建如下另一個容器:

oc new-app https://github.com/MojoJojo/authenticated-payments.git --name="jboss-keycloak" -l name="jboss-keycloak" --context-dir=jboss-keycloak 

上面Git倉庫具有Dockerfile聲明以下環境變量:

POSTGRES_PORT_5432_TCP_ADDR=postgres-keycloak.authenticatedcollections.svc.cluster.local 

POSTGRES_PORT_5432_TCP_PORT=5432 

我驗證了上述環境變量在第二個容器中正確設置。 問題是第二個服務無法連接到第一個容器中的'postgres-keycloak'數據庫。

經過進一步調查,我發現雖然我可以ping POD,羣集IP和羣集主機名,但只有直接使用pod的IP地址時,psql客戶端才能夠連接。到目前爲止,我的結論是,DNS解析工作正常 - 這只是服務配置,看起來有點混亂。看起來服務代理不會將請求轉發給容器。 另外,我不確定上述提取中的Endpoint數(零)是否是問題的原因?我的理解是Endpoints僅用於從羣集外部訪問服務。

我已經嘗試安裝其他服務,如Web服務器進行測試,但它似乎沒有Cluster Hostnames或IP地址工作。

我真的很感激任何提示,提示和指示,以幫助排除故障並解決此問題。

謝謝你的幫助。

回答

0

在你的情況,我看到命名空間是authenticated-collections,但在你使用的env變量authenticatedcollections

我想應該是這樣的:

POSTGRES_PORT_5432_TCP_ADDR=postgres-keycloak.authenticated-collections.svc.cluster.local 

難道僅僅是在問題或錯誤配置一個錯字? 另外,我假設兩個豆莢在同一個項目中運行。

相關問題