"UnknownHostException":Zookeeper 3.5.3 和 StatefulSet Kubernetes
"UnknownHostException": Zookeeper 3.5.3 and StatefulSet Kubernetes
Zookeeper 3.5.3-beta 不适用于我的 GCloud Kubernetes Engine。使用与 Zookeeper 3.4.10 相同的配置即可。
当我 运行 客户端完整性测试时,返回的唯一异常是:
2017-11-29 14:27:17,597 [myid:1] - WARN [QuorumPeer[myid=1](plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):Learner@273] - Unexpected exception, tries=0, remaining init limit=20000, connecting to zk-2.zk-svc.default.svc.cluster.local:2888
java.net.UnknownHostException: zk-2.zk-svc.default.svc.cluster.local
虽然有人认为此问题与 kube-dns 相关,如前所述 here。
kube-dns(dns.go:48] 版本:1.14.4-2-g5584e04)似乎按预期工作:
/ # nslookup zk-0.zk-svc.default.svc.cluster.local
Server: 10.63.240.10
Address 1: 10.63.240.10 kube-dns.kube-system.svc.cluster.local
Name: zk-0.zk-svc.default.svc.cluster.local
Address 1: 10.60.3.3 zk-0.zk-svc.default.svc.cluster.local
/ # nslookup zk-2.zk-svc.default.svc.cluster.local
Server: 10.63.240.10
Address 1: 10.63.240.10 kube-dns.kube-system.svc.cluster.local
Name: zk-2.zk-svc.default.svc.cluster.local
Address 1: 10.60.4.3 zk-2.zk-svc.default.svc.cluster.local
/ # nslookup zk-1.zk-svc.default.svc.cluster.local
Server: 10.63.240.10
Address 1: 10.63.240.10 kube-dns.kube-system.svc.cluster.local
Name: zk-1.zk-svc.default.svc.cluster.local
Address 1: 10.60.2.5 zk-1.zk-svc.default.svc.cluster.local
并且 kube-dns 日志中没有错误。
在 3.4.10 中,第一个节点在初始化时也会产生 UnknownHostExceptions,但最终会提供这种类型的解决指示,但在 3.5.3 中不会
2017-11-29 15:14:39,923 [myid:] - INFO [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zk-0.zk-svc.default.svc.cluster.local to address: zk-0.zk-svc.default.svc.cluster.local/10.60.4.4
我没有足够的信息来向 Zookeeper 提出问题,因此我将不胜感激有关如何调试此问题的任何建议。
根据最近在 ZOOKEEPER-2343 中的评论,我部署了一个 3.6.0-SNAPSHOT 映像。第二个和第三个节点立即接受客户端请求,但第一个节点不接受并报告 "This ZooKeeper instance is not currently serving requests"。
删除第一个节点可以解决该问题,因为它启动时可以参与仲裁。
Zookeeper 3.5.3-beta 不适用于我的 GCloud Kubernetes Engine。使用与 Zookeeper 3.4.10 相同的配置即可。
当我 运行 客户端完整性测试时,返回的唯一异常是:
2017-11-29 14:27:17,597 [myid:1] - WARN [QuorumPeer[myid=1](plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):Learner@273] - Unexpected exception, tries=0, remaining init limit=20000, connecting to zk-2.zk-svc.default.svc.cluster.local:2888
java.net.UnknownHostException: zk-2.zk-svc.default.svc.cluster.local
虽然有人认为此问题与 kube-dns 相关,如前所述 here。
kube-dns(dns.go:48] 版本:1.14.4-2-g5584e04)似乎按预期工作:
/ # nslookup zk-0.zk-svc.default.svc.cluster.local
Server: 10.63.240.10
Address 1: 10.63.240.10 kube-dns.kube-system.svc.cluster.local
Name: zk-0.zk-svc.default.svc.cluster.local
Address 1: 10.60.3.3 zk-0.zk-svc.default.svc.cluster.local
/ # nslookup zk-2.zk-svc.default.svc.cluster.local
Server: 10.63.240.10
Address 1: 10.63.240.10 kube-dns.kube-system.svc.cluster.local
Name: zk-2.zk-svc.default.svc.cluster.local
Address 1: 10.60.4.3 zk-2.zk-svc.default.svc.cluster.local
/ # nslookup zk-1.zk-svc.default.svc.cluster.local
Server: 10.63.240.10
Address 1: 10.63.240.10 kube-dns.kube-system.svc.cluster.local
Name: zk-1.zk-svc.default.svc.cluster.local
Address 1: 10.60.2.5 zk-1.zk-svc.default.svc.cluster.local
并且 kube-dns 日志中没有错误。
在 3.4.10 中,第一个节点在初始化时也会产生 UnknownHostExceptions,但最终会提供这种类型的解决指示,但在 3.5.3 中不会
2017-11-29 15:14:39,923 [myid:] - INFO [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zk-0.zk-svc.default.svc.cluster.local to address: zk-0.zk-svc.default.svc.cluster.local/10.60.4.4
我没有足够的信息来向 Zookeeper 提出问题,因此我将不胜感激有关如何调试此问题的任何建议。
根据最近在 ZOOKEEPER-2343 中的评论,我部署了一个 3.6.0-SNAPSHOT 映像。第二个和第三个节点立即接受客户端请求,但第一个节点不接受并报告 "This ZooKeeper instance is not currently serving requests"。
删除第一个节点可以解决该问题,因为它启动时可以参与仲裁。