Docker 部署zookeeper3.4


 一、服務器規划

主機 IP 端口
node-10 172.16.10.10 2181,2888,3888
node-11 172.16.10.11 2181,2888,3888
node-12 172.16.10.12 2181,2888,3888

 二、集群部署

注:以下步驟需要分別在三台主機操作

2.1 鏡像下載

[root@node-10 ~]# docker pull zookeeper:3.4

 官方鏡像:https://hub.docker.com/_/zookeeper

 2.2 安裝部署

  ## 創建宿主機映射目錄

[root@node-10 ~]# mkdir /opt/zookeeper/{conf,data,logs} -p

 ## 創建配置文件

三台zk節點配置文件一樣,直接復制就行

[root@node-10 ~]# vim /opt/zookeeper/conf/zoo.cfg
clientPort=2181  
dataDir=/data    #數據存儲
dataLogDir=/datalog  #日志
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.1=172.16.10.10:2888:3888
server.2=172.16.10.11:2888:3888
server.3=172.16.10.12:2888:3888

參數解釋:

  2181:對cline端提供服務
  3888:選舉leader使用
  2888:集群內機器通訊使用(Leader監聽此端口)
  server.1: 1為一個數字,表示zk的id,這個id也是dataDir目錄下myid文件的內容。

##  配置zookeeper主機id,每個機器id不能相同,需要對應配置文件中server后面的值

[root@node-10 ~]# echo "1" > /opt/zookeeper/data/myid
[root@node-11 ~]# echo "2" > /opt/zookeeper/data/myid
[root@node-12 ~]# echo "3" > /opt/zookeeper/data/myid

 2.3 啟動

[root@node-10 ~]# docker run --network host --restart=always \
 -v /opt/zookeeper/data:/data \
 -v /opt/zookeeper/conf:/conf \
 -v /opt/zookeeper/logs:/datalog \
 --name zookeeper -d zookeeper:3.4

參數解釋:

  /opt/zookeeper/data:/data  #數據目錄

  /opt/zookeeper/conf:/conf  #配置文件

  /opt/zookeeper/logs:/datalog  #日志目錄

 注:容器網絡采用的是host模式,因此不需要再進行端口映射,三台機器上zk部署,基本類似,只有myid每個機器需要有唯一值

2.4 檢查集群狀態

[root@node-10 ~]# docker exec -it zookeeper /bin/bash
root@node-10:/zookeeper-3.4.14# cd bin/
root@node-10:/zookeeper-3.4.14/bin# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower

可以看到該節點為從節點,通過查看其它節點,可以看到11服務器為leader節點

[root@node-11 ~]# docker exec -it zookeeper /bin/bash
root@node-11:/zookeeper-3.4.14# cd bin
root@node-11:/zookeeper-3.4.14/bin# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader

以上為docker部署zookeeper集群的過程,關於配置參數,需要根據自己的業務需求靈活調整。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM