使用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
相关推荐
CurrentJ 2020-08-18
JustHaveTry 2020-07-17
Dannyvon 2020-07-13
Dannyvon 2020-07-04
###host字段指定授权使用该证书的etcd节点IP或子网列表,需要将etcd集群的3个节点都添加其中。cp etcd-v3.3.13-linux-amd64/etcd* /opt/k8s/bin/
xiunai 2020-07-04
breezegao 2020-07-02
微微一笑 2020-06-14
微微一笑 2020-06-12
CurrentJ 2020-06-06
lenchio 2020-06-04
微微一笑 2020-06-03
工作中的点点滴滴 2020-06-01
Rcvisual 2020-05-28
Dannyvon 2020-05-28
微微一笑 2020-05-26
wishli 2020-05-19
工作中的点点滴滴 2020-05-14