基于docker多机器zk集群搭建
在3台机器上创建zk目录
sudo mkdir -p /usr/local/zookeeper/conf
sudo mkdir -p /usr/local/zookeeper/data
sudo mkdir -p /usr/local/zookeeper/logs
在conf下每台机器 下创建 zoo.cfg
vim /usr/local/zookeeper/conf/zoo.cfg
nitLimit=5
syncLimit=2
dataDir=/data
dataLogDir=/datalog
clientPort=2181
maxClientCnxns=60
server.1=0.0.0.0:2888:3888
server.2=xxx.xxx.xxx.xxx:2888:3888
server.3=xxx.xxx.xxx.xxx:2888:3888
每台机器配置区别是 假设当前机器是server.1 那么当前机器的ip填0.0.0.0
以此类推。
在docker swarm Leader机器下创建 网关
sudo docker network create -d overlay \
--subnet=10.10.0.0/16 \
--gateway=10.10.0.254 \
--attachable=true \
Overlay
在portainer 上创建任务执行下面的命令
version: '3.3'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
volumes:
- /usr/local/zookeeper/data:/data
- /usr/local/zookeeper/logs:/logs
networks:
- overlay
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
zoo2:
image: zookeeper
restart: always
hostname: zoo2
volumes:
- /usr/local/zookeeper/data:/data
- /usr/local/zookeeper/logs:/logs
networks:
- overlay
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
zoo3:
image: zookeeper
restart: always
hostname: zoo3
volumes:
- /usr/local/zookeeper/data:/data
- /usr/local/zookeeper/logs:/logs
networks:
- overlay
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
networks:
overlay:
external: true
命令执行完后效果