我設置的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 Hostname
和Cluster 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地址工作。
我真的很感激任何提示,提示和指示,以幫助排除故障並解決此問題。
謝謝你的幫助。