使用Docker搭建etcd集群

Step 1

Mac下安装etcd 进行测试

brew install etcd

执行

etcd --version

确保安装成功

Step 2
使用docker-machine创建3个docker主机

docker-machine create --driver virtualbox box0
docker-machine create --driver virtualbox box1
docker-machine create --driver virtualbox box2

确认生成成功,记住每个docker主机的ip地址

docker-machine ls

图片描述

Step 3
创建三个目录node1,node2,node3在下一步会将主机的node1,node2,node3目录通过--volume=nodex:/etcd-data 挂载到相应的container。

使用docker-machine ssh登入三个docker主机

docker-machine ssh box0

Step 4
在三个docker主机上启动etcd。
box0主机上执行

docker run --rm --name etcd \
    -p 2379:2379 \
    -p 2380:2380 \
    --volume=node1:/etcd-data \
    quay.io/coreos/etcd \
    /usr/local/bin/etcd \
    --data-dir=/etcd-data --name node1 \
    --initial-advertise-peer-urls http://192.168.99.106:2380 --listen-peer-urls http://0.0.0.0:2380 \
    --advertise-client-urls http://192.168.99.106:2379 --listen-client-urls http://0.0.0.0:2379 \
    --initial-cluster-state new \
    --initial-cluster-token docker-etcd \
    --initial-cluster node1=http://192.168.99.106:2380,node2=http://192.168.99.107:2380,node3=http://192.168.99.108:2380

box1主机上执行

docker run --rm --name etcd \
    -p 2379:2379 \
    -p 2380:2380 \
    --volume=node2:/etcd-data \
    quay.io/coreos/etcd \
    /usr/local/bin/etcd \
    --data-dir=/etcd-data --name node2 \
    --initial-advertise-peer-urls http://192.168.99.107:2380 --listen-peer-urls http://0.0.0.0:2380 \
    --advertise-client-urls http://192.168.99.107:2379 --listen-client-urls http://0.0.0.0:2379 \
    --initial-cluster-state new \
    --initial-cluster-token docker-etcd \
    --initial-cluster node1=http://192.168.99.106:2380,node2=http://192.168.99.107:2380,node3=http://192.168.99.108:2380   

box2主机上执行

docker run --rm --name etcd \
-p 2379:2379 \
-p 2380:2380 \
--volume=node3:/etcd-data \
quay.io/coreos/etcd \
/usr/local/bin/etcd \
--data-dir=/etcd-data --name node3 \
--initial-advertise-peer-urls http://192.168.99.108:2380 --listen-peer-urls http://0.0.0.0:2380 \
--advertise-client-urls http://192.168.99.108:2379 --listen-client-urls http://0.0.0.0:2379 \
--initial-cluster-state new \
--initial-cluster-token docker-etcd \
--initial-cluster node1=http://192.168.99.106:2380,node2=http://192.168.99.107:2380,node3=http://192.168.99.108:2380

PS:将ip地址换成各自通过docker-machine ls命令看到的ip

正常执行后应该通过docker ps能够看到
图片描述

Step 5
查看集群成员状态
在任意一台docker主机上进入docker容器

docker exec -it 49a0eeb7e3df /bin/sh

执行etcdctl member list可查看到所有成员的状态
图片描述

Step 6
确认
访问任何一台docker主机的ip

curl http://192.168.99.106:2379/v2/members

图片描述

设定键值

curl http://192.168.99.106:2379/v2/keys/test -XPUT -d value="test value"

取得键值

curl http://192.168.99.106:2379/v2/keys/test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值