2015-11-24 3 views
0

Я хотел бы настроить кластер кластера 3-х узлов с версией 3.5.1. Чтобы развернуть его в kubernetes, я должен сделать узел zookeeper сам 0.0.0.0, поэтому его можно запустить правильно. конфигурация, как показано ниже:Не удалось развернуть Zookeeper 3.5.1 в kubernetes

ZK1: zoo.cfg

standaloneEnabled=false 
    dynamicConfigFile=/opt/zookeeper/conf/zoo.cfg.dynamic 

zoo.cfg.dynamic

server.1=0.0.0.0:2888:3888:participant;2181 
    server.2=10.62.56.192:2889:3889:participant;2182 
    server.3=10.62.56.192:2890:3890:participant;2183 

ZK2: zoo.cfg

standaloneEnabled=false 
    dynamicConfigFile=/opt/zookeeper/conf/zoo.cfg.dynamic 

zoo.cfg.dynamic

server.1=10.62.56.192:2888:3888:participant;2181 
    server.2=0.0.0.0:2889:3889:participant;2182 
    server.3=10.62.56.192:2890:3890:participant;2183 

zk3: zoo.cfg

standaloneEnabled=false 
    dynamicConfigFile=/opt/zookeeper/conf/zoo.cfg.dynamic 

zoo.cfg.dynamic

server.1=10.62.56.192:2888:3888:participant;2181 
    server.2=10.62.56.192:2889:3889:participant;2182 
    server.3=0.0.0.0:2890:3890:participant;2183 

В результате только ZK1 может быть запущен, zk2 и zk3 не запускаются. Ошибки

org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: client address for this server (id = 2) in static config file is 0.0.0.0/0.0.0.0:2181 is different from client address found in dynamic file: /0.0.0.0:2182 
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupClientPort(QuorumPeerConfig.java:608) 
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:506) 
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:157) 
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:110) 
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79) 

Invalid конфигурации, выход ненормально

Дело в том, что мы должны настроить Узлом себя как 0.0.0.0.

ответ

0

Try: https://hub.docker.com/r/elevy/zookeeper/, который основан на https://github.com/eliaslevy/docker-zookeeper

То есть с помощью 1 обслуживание за гк стручка. Каждая служба имеет свое «имя хоста», которое может быть разрешено через DNS изнутри каждого модуля zk. Имена - zookeeper-1, zookeeper-2 и zookeeper-3.

Таким образом, вместо конфигурации линий, как

server.1=0.0.0.0:2888:3888:participant;2181 
server.2=10.62.56.192:2889:3889:participant;2182 
server.3=10.62.56.192:2890:3890:participant;2183 

у вас есть конфигурационные строки:

server.1=zookeeper-1:2888:3888 
server.2=zookeeper-2:2888:3888 
server.3=zookeeper-3:2888:3888 

Обратите внимание, что поскольку каждый Pod имеет свой собственный IP-адрес, вам не нужно использовать диапазон портов, таких как 2888, 2889, 2890. Вы можете использовать только 2888/3888 для каждого из них.

+0

Я пробовал этот путь, но ошибка в том, что порт 2888 из Pod не может быть привязан к имени узла службы. Вот почему я использовал 0.0.0.0. –

+0

Ошибка ** Не удалось связать с /172.254.2.198:2888 java.net.BindException: Невозможно назначить запрошенный адрес ** –

Смежные вопросы