docker swarm 安装zookeeper集群

204 阅读2分钟

docker swarm 安装zookeeper集群

docker swarm 服务器地址

IP域名职责
192.168.1.140docker-master140docker manager管理节点
192.168.1.141docker-slave141docker work管理节点
192.168.1.142docker-slave142docker work管理节点
192.168.1.143docker-master143docker manager管理节点
192.168.1.144docker-slave144docker work管理节点
192.168.1.145docker-slave145docker work管理节点
192.168.1.146docker-master146docker manager管理节点

zookeeper yml配置

version: '3.1'

services:
  zoo1:
    deploy:
      mode: replicated
      replicas: 1
    image: zookeeper:3.4.14
    networks:
      - leek-net
    hostname: zoo1
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
    volumes:
      - "/home/zookeeper/conf/zook1:/conf"
      - "/home/zookeeper/data/zook1:/data"
      - "/home/zookeeper/datalog/zook1:/datalog"
  zoo2:
    deploy:
      mode: replicated
      replicas: 1
    image: zookeeper:3.4.14
    networks:
      - leek-net
    hostname: zoo2
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181
    volumes:
      - "/home/zookeeper/conf/zook2:/conf"
      - "/home/zookeeper/data/zook2:/data"
      - "/home/zookeeper/datalog/zook2:/datalog"
  zoo3:
    deploy:
      mode: replicated
      replicas: 1
    image: zookeeper:3.4.14
    networks:
      - leek-net
    hostname: zoo3
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
    volumes:
      - "/home/zookeeper/conf/zook3:/conf"
      - "/home/zookeeper/data/zook3:/data"
      - "/home/zookeeper/datalog/zook3:/datalog"

networks:
  leek-net:
    external: true

根据上面的配置文件,需要在各个节点上增加配置文件的路径

mkdir -p /home/zookeeper/conf/zook1
mkdir -p /home/zookeeper/conf/zook2
mkdir -p /home/zookeeper/conf/zook3

mkdir -p /home/zookeeper/data/zook1
mkdir -p /home/zookeeper/data/zook2
mkdir -p /home/zookeeper/data/zook3

mkdir -p /home/zookeeper/datalog/zook1
mkdir -p /home/zookeeper/datalog/zook2
mkdir -p /home/zookeeper/datalog/zook3

并且在/home/zookeeper/conf/zook1,/home/zookeeper/conf/zook2,/home/zookeeper/conf/zook3

路径内增加zoo.cfg配置文件

[root@docker-master140 zook1]# cat zoo.cfg 
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/data/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1