我有一个服务发现和一个在Rancher注册到这个服务器的客户端。 它是这样的:
eureka-server:
ports:
- 8761:8761/tcp
labels:
io.rancher.container.pull_image: always
io.rancher.container.start_once: 'true'
tty: true
image: luizkowalski/eureka-server
stdin_open: true
net: host
edge-server:
ports:
- 8080:8080/tcp
labels:
io.rancher.container.pull_image: always
io.rancher.container.start_once: 'true'
tty: true
image: luizkowalski/edge-server
links:
- eureka-server:discovery
stdin_open: true
net: host
根据链接,我应该可以使用主机名eureka-server
连接到discovery
,例如http://discovery:8761/eureka
,但我正在
10/28/2016 2:04:55 PMCaused by: java.net.UnknownHostException: discovery
10/28/2016 2:04:55 PM at java.net.InetAddress.getAllByName0(InetAddress.java:1280) ~[na:1.8.0_92-internal]
10/28/2016 2:04:55 PM at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[na:1.8.0_92-internal]
10/28/2016 2:04:55 PM at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[na:1.8.0_92-internal]
10/28/2016 2:04:55 PM at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.2.jar!/:4.5.2]
10/28/2016 2:04:55 PM at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:262) ~[httpclient-4.5.2.jar!/:4.5.2]
10/28/2016 2:04:55 PM at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:161) ~[httpclient-4.5.2.jar!/:4.5.2]
10/28/2016 2:04:55 PM at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[httpclient-4.5.2.jar!/:4.5.2]
当我在Rancher中将网络用作managed
时,它可以正常工作,但结果是,我的服务发现将我的内部ips暴露给负载均衡器(172.xxx.xxx.xx
),我无法做到给我的注册服务打电话
是否有任何配置缺失?
答案 0 :(得分:1)
为了访问提供链接名称解析的Rancher DNS,您需要使用net:host添加到服务器的标签io.rancher.container.dns:true
。