2016-11-22 91 views
1

我有一个卡夫卡0.10.1.0集群(2个节点)和动物园管理员3.4.6(3个节点)卡夫卡无法解决Zookeper的DNS名称

群集位于Kubernetes以下this tutorial主持。从卡夫卡的server.properties

相关条目:

listeners=PLAINTEXT://0.0.0.0:9092 
advertised.listeners=PLAINTEXT://kafka.internal.<companyname>.com:9092 
zookeeper.connect=zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181 

在服务器启动时,各券商卡夫卡用下面很快失败。对我来说,它看起来像无法解析DNS名称zookeeper-1。我也尝试从zookeeper.connect中删除端口,虽然我读的是the relevant code,但我不认为这会有所作为。

当然,我确认zookeeper-1可以从集群内解决。集群内的其他容器可以解析名称。

我也尝试了一系列其他别名,包括服务的DNS名称和Zookeeper的负载平衡器,所有这些都是我独立确认的工作。在每种情况下,仅卡夫卡报告Name or service not known

[2016-11-22 19:55:45,506] INFO Initiating client connection, connectString=zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181 sessionTimeout=6000 [email protected] (org.apache.zookeeper.ZooKeeper) 
[2016-11-22 19:56:05,571] INFO Terminate ZkClient event thread. (org.I0Itec.zkclient.ZkEventThread) 
[2016-11-22 19:56:05,572] FATAL Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) 
org.I0Itec.zkclient.exception.ZkException: Unable to connect to zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181 
    at org.I0Itec.zkclient.ZkConnection.connect(ZkConnection.java:71) 
    at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:1227) 
    at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:156) 
    at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:130) 
    at kafka.utils.ZkUtils$.createZkClientAndConnection(ZkUtils.scala:76) 
    at kafka.utils.ZkUtils$.apply(ZkUtils.scala:58) 
    at kafka.server.KafkaServer.initZk(KafkaServer.scala:327) 
    at kafka.server.KafkaServer.startup(KafkaServer.scala:200) 
    at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:39) 
    at kafka.Kafka$.main(Kafka.scala:67) 
    at kafka.Kafka.main(Kafka.scala) 
Caused by: java.net.UnknownHostException: zookeeper-1: Name or service not known 
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) 
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) 
    at java.net.InetAddress.getAllByName0(InetAddress.java:1276) 
    at java.net.InetAddress.getAllByName(InetAddress.java:1192) 
    at java.net.InetAddress.getAllByName(InetAddress.java:1126) 
    at org.apache.zookeeper.client.StaticHostProvider.<init>(StaticHostProvider.java:61) 
    at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:446) 
    at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:380) 
    at org.I0Itec.zkclient.ZkConnection.connect(ZkConnection.java:69) 
    ... 10 more 
[2016-11-22 19:56:05,575] INFO shutting down (kafka.server.KafkaServer) 
[2016-11-22 19:56:05,616] INFO shut down completed (kafka.server.KafkaServer) 

其他信息相关的卡夫卡形象:它是基于关闭wurstmeister/kafka-docker但更新到openjdk:8-jre继承。

+0

您是否尝试过使用这些PetSets的完全限定域名? 解析方法通常不适用于短名称。 – MrE

+0

你可以ping'zookeeper-1'吗?主机名是否可以解决? – bsd

回答

0

事实证明,这是Kubernetes本身的一个问题。

经过与v1.4.6无关的升级并没有其他更改后,名称能够正常解析。

相关问题