您的位置:首页 > 运维架构 > Docker

docker深入2-使用自定义的网络来配置zookeeper集群

2016-06-23 11:44 826 查看
docker深入2-使用自定义的网络来配置zookeeper集群
2016/6/24

一、示例
测试环境基于文档:docker深入2-熟悉v1.11和找不同.txt
目标:熟悉自定义网络的应用
-------------------------------------------------------
---------------------- n36.test -----------------------
zk1                                        172.30.200.1
zk2   -> docker network(net_env_test) ->   172.30.200.2
zk3                                        172.30.200.3
-------------------------------------------------------

二、镜像和网络
1、镜像
[Jack@n36 ~]$ docker pull registry.aliyuncs.com/denverdino/zookeeper:3.4.8

2、自定义网络
[Jack@n36 ~]$ docker network create --subnet 172.30.0.0/16 --gateway 172.30.0.1 --ip-range 172.30.0.0/17 net_env_test
fe455726968a326cbae52a4260cfd1d013884f897f442fdaafa43f6fa2dffcc3

注:解释一下这里的网络配置
刚才我们创建的这个 network 所属的网段是:172.30.0.0/16
可用于自动分配的ip范围是:172.30.0.0/17(172.30.0.1 - 172.30.127.254)
这意味着,我们保留了一段IP用于手动分配:172.30.128.0/17(172.30.128.1 - 172.30.255.254)
因此,这个也算是一个IP规划的小技巧,仅供参考。

三、启动zookeeper集群,指定IP地址
[Jack@n36 ~]$ docker run -d \
--name zk1 \
--net net_env_test \
--ip 172.30.200.1 \
-e SERVER_ID=1 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=172.30.200.1:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=172.30.200.2:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=172.30.200.3:2888:3888 \
registry.aliyuncs.com/denverdino/zookeeper:3.4.8

[Jack@n36 ~]$ docker run -d \
--name zk2 \
--net net_env_test \
--ip 172.30.200.2 \
-e SERVER_ID=2 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=172.30.200.1:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=172.30.200.2:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=172.30.200.3:2888:3888 \
registry.aliyuncs.com/denverdino/zookeeper:3.4.8

[Jack@n36 ~]$ docker run -d \
--name zk3 \
--net net_env_test \
--ip 172.30.200.3 \
-e SERVER_ID=3 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=172.30.200.1:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=172.30.200.2:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=172.30.200.3:2888:3888 \
registry.aliyuncs.com/denverdino/zookeeper:3.4.8

[Jack@n36 ~]$ docker inspect --format='{{range .NetworkSettings.Networks}}``.`IPAddress``end`' `docker ps -f name=zk[1-3] -q`
172.30.200.3
172.30.200.2
172.30.200.1

[Jack@n36 ~]$ docker ps -f name=zk[1-3]
CONTAINER ID        IMAGE                                              COMMAND               CREATED             STATUS              PORTS                          NAMES
c2feaffe2ce7        registry.aliyuncs.com/denverdino/zookeeper:3.4.8   "/opt/zookeeper.sh"   27 seconds ago      Up 26 seconds       2181/tcp, 2888/tcp, 3888/tcp   zk3
85e66c209e30        registry.aliyuncs.com/denverdino/zookeeper:3.4.8   "/opt/zookeeper.sh"   31 seconds ago      Up 30 seconds       2181/tcp, 2888/tcp, 3888/tcp   zk2
5950af6802fe        registry.aliyuncs.com/denverdino/zookeeper:3.4.8   "/opt/zookeeper.sh"   36 seconds ago      Up 35 seconds       2181/tcp, 2888/tcp, 3888/tcp   zk1

四、测试
1、连通性
[Jack@n36 ~]$ docker exec -it zk1 bash
bash-4.3# ping zk2
PING zk2 (172.30.200.2): 56 data bytes
64 bytes from 172.30.200.2: seq=0 ttl=64 time=0.173 ms
^C
--- zk2 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.173/0.173/0.173 ms
bash-4.3# ping zk3
PING zk3 (172.30.200.3): 56 data bytes
64 bytes from 172.30.200.3: seq=0 ttl=64 time=0.101 ms
^C
--- zk3 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.101/0.101/0.101 ms

2、服务
[Jack@n36 ~]$ docker exec -it zk1 bash
bash-4.3# bin/zkCli.sh -server zk3:2181
2016-06-23 03:27:28,058 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
2016-06-23 03:27:28,063 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=5950af6802fe
2016-06-23 03:27:28,063 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_77-internal
2016-06-23 03:27:28,066 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2016-06-23 03:27:28,067 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java-1.8-openjdk/jre
2016-06-23 03:27:28,067 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../build/lib/*.jar:/opt/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/opt/zookeeper/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/bin/../zookeeper-3.4.8.jar:/opt/zookeeper/bin/../src/java/lib/*.jar:/opt/zookeeper/bin/../conf:
2016-06-23 03:27:28,067 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-06-23 03:27:28,067 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2016-06-23 03:27:28,067 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2016-06-23 03:27:28,068 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2016-06-23 03:27:28,068 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2016-06-23 03:27:28,068 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-229.el7.x86_64
2016-06-23 03:27:28,068 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2016-06-23 03:27:28,068 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2016-06-23 03:27:28,068 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/zookeeper
2016-06-23 03:27:28,070 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=zk3:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@3eb07fd3
Welcome to ZooKeeper!
2016-06-23 03:27:28,109 [myid:] - INFO  [main-SendThread(zk3.net_env_test:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server zk3.net_env_test/172.30.200.3:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-06-23 03:27:28,205 [myid:] - INFO  [main-SendThread(zk3.net_env_test:2181):ClientCnxn$SendThread@876] - Socket connection established to zk3.net_env_test/172.30.200.3:2181, initiating session
2016-06-23 03:27:28,215 [myid:] - INFO  [main-SendThread(zk3.net_env_test:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server zk3.net_env_test/172.30.200.3:2181, sessionid = 0x3557b3d3ba80001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: zk3:2181(CONNECTED) 0]
[zk: zk3:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: zk3:2181(CONNECTED) 1] create /zk_test test_data
Created /zk_test
[zk: zk3:2181(CONNECTED) 2] ls /
[zookeeper, zk_test]
[zk: zk3:2181(CONNECTED) 3] get /zk_test
test_data
cZxid = 0x100000015
ctime = Thu Jun 23 03:28:07 GMT 2016
mZxid = 0x100000015
mtime = Thu Jun 23 03:28:07 GMT 2016
pZxid = 0x100000015
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: zk3:2181(CONNECTED) 7] quit
Quitting...
2016-06-23 03:28:25,427 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x3557b3d3ba80001 closed
bash-4.3#

ZYXW、参考
1、学习Docker容器网络模型 - 搭建分布式Zookeeper集群 https://yq.aliyun.com/articles/30328?spm=5176.100239.blogcont55866.14.KQScYn# https://github.com/denverdino/aliyungo/wiki/Zookeeper-cluster-with-Docker?spm=5176.100239.blogcont30328.19.av6ce8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker zookeeper