docker swarm 安装zookeeper集群
docker swarm 服务器地址
| IP | 域名 | 职责 |
|---|---|---|
| 192.168.1.140 | docker-master140 | docker manager管理节点 |
| 192.168.1.141 | docker-slave141 | docker work管理节点 |
| 192.168.1.142 | docker-slave142 | docker work管理节点 |
| 192.168.1.143 | docker-master143 | docker manager管理节点 |
| 192.168.1.144 | docker-slave144 | docker work管理节点 |
| 192.168.1.145 | docker-slave145 | docker work管理节点 |
| 192.168.1.146 | docker-master146 | docker 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