1. 借鉴
2. 开始
我们的集群规划如下:
zookeeper01[172.173.16.13] | zookeeper02[172.173.16.14] | zookeeper03[172.173.16.15] |
---|
镜像准备
- docker hub 下载
docker pull caiserkaiser/centos-ssh
创建自定义网络
docker network create -d bridge --subnet "172.173.16.0/24" --gateway "172.173.16.1" datastore_net
启动容器
docker run -it -d --network datastore_net --ip 172.173.16.13 --name zookeeper01 caiser/centos-ssh:7.8
下载并配置zookeeper
-
拷贝到容器内
docker cp ~/Downloads/zookeeper-3.4.14.tar.gz e29f1684f2d4:/opt/envs
-
解压
tar -zxvf zookeeper-3.4.14.tar.gz
-
配置服务器编号
1> 在 zookeeper-3.4.14 目录中创建data目录,并在data目录下创建myid文件
2> 设置编号,编辑myid,填写任意正整数,这里我设置为1
5.修改zoo.conf配置文件
-
a. 备份
cp /opt/envs/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/envs/zookeeper-3.4.14/conf/zoo.cfg
-
b. 编辑zoo.cfg
vi /opt/envs/zookeeper-3.4.14/conf/zoo.cfg
-
c. 修改以下内容
dataDir=/opt/envs/zookeeper-3.4.14/data/
-
d. 在最后一行增加以下内容
server.1=zookeeper01:2888:3888 server.2=zookeeper02:2888:3888 server.3=zookeeper03:2888:3888
注意:这里的1,2,3不是瞎写的,要与对应节点中的myid里面的一致
端口说明
1、2181:对cline端提供服务
2、3888:选举leader使用
3、2888:集群内机器通讯使用(Leader监听此端口)
zookeeper-节点配置
-
编辑/etc/hosts,并添加以下hostname
172.173.16.13 zookeeper01 172.173.16.14 zookeeper02 172.173.16.15 zookeeper03
保存为镜像并移除容器
docker commit e29f1684f2d4 caiser/zookeeper:3.4.14
docker rm e29f1684f2d4
启动容器
docker run -it -d --network datastore_net --ip 172.173.16.13 --name zookeeper01 caiser/zookeeper:3.4.14 bin/bash
docker run -it -d --network datastore_net --ip 172.173.16.14 --name zookeeper02 caiser/zookeeper:3.4.14 bin/bash
docker run -it -d --network datastore_net --ip 172.173.16.15 --name zookeeper03 caiser/zookeeper:3.4.14 bin/bash
配置ssh免密登录
-
进入容器
docker exec -it zookeeper01 /bin/bash
-
到~/.ssh目录下生成秘钥[已经存在了就选择覆盖]
ssh-keygen -t rsa
-
拷贝秘钥到zookeeper01,zookeeper02和zookeeper03
a.[如果没开启]三个容器没有开启ssh服务[ps -ef | grep ssh],需要依次执行
/usr/sbin/sshd -D &
b. 拷贝秘钥
ssh-copy-id zookeeper01 ssh-copy-id zookeeper02 ssh-copy-id zookeeper03
-
zookeeper02和zookeeper03依次执行上述1-3步骤
修改各个容器的myid,使于zoo.cfg文件的配置一致
server.1 <=> zookeeper01
server.2 <=> zookeeper02
server.3 <=> zookeeper03
启动ZK
依次到zookeeper01,zookeeper02,zookeeper03机器上执行以下命令
cd /opt/envs/zookeeper-3.4.14
bin/zkServer.sh start
依次查看节点状态
bin/zkServer.sh status
网友评论