美文网首页
Docker 构建 Zookeeper 3.4.14 集群

Docker 构建 Zookeeper 3.4.14 集群

作者: 孙瑞锴 | 来源:发表于2020-06-12 21:35 被阅读0次

1. 借鉴

2. 开始

我们的集群规划如下:

zookeeper01[172.173.16.13] zookeeper02[172.173.16.14] zookeeper03[172.173.16.15]

镜像准备

  1. docker hub 下载
  docker pull caiserkaiser/centos-ssh
  1. 构建
    caiser/centos-ssh:7.8 镜像

创建自定义网络

Docker 网络操作

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

  1. 下载zookeeper

  2. 拷贝到容器内

    docker cp ~/Downloads/zookeeper-3.4.14.tar.gz e29f1684f2d4:/opt/envs
    
  3. 解压

    tar -zxvf zookeeper-3.4.14.tar.gz
    
  4. 配置服务器编号
    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-节点配置

  1. 编辑/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免密登录

  1. 进入容器

    docker exec -it zookeeper01 /bin/bash

  2. 到~/.ssh目录下生成秘钥[已经存在了就选择覆盖]

    ssh-keygen -t rsa

  3. 拷贝秘钥到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
    
  4. 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

3. 大功告成

相关文章

网友评论

      本文标题:Docker 构建 Zookeeper 3.4.14 集群

      本文链接:https://www.haomeiwen.com/subject/ynintktx.html