我设置的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地址工作。
我真的很感激任何提示,提示和指示,以帮助排除故障并解决此问题。
谢谢你的帮助。