使用Docker搭建etcd集群

2021-10-04 19:24:32 字數 2841 閱讀 7024

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位址

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 --listen-peer-urls \

--advertise-client-urls --listen-client-urls \

--initial-cluster-state new \

--initial-cluster-token docker-etcd \

--initial-cluster node1=,node2=,node3=

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 --listen-peer-urls \

--advertise-client-urls --listen-client-urls \

--initial-cluster-state new \

--initial-cluster-token docker-etcd \

--initial-cluster node1=,node2=,node3=

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 --listen-peer-urls \

--advertise-client-urls --listen-client-urls \

--initial-cluster-state new \

--initial-cluster-token docker-etcd \

--initial-cluster node1=,node2=,node3=

正常執行後應該通過docker ps能夠看到

step 5

檢視集群成員狀態

在任意一台docker主機上進入docker容器

docker exec -it 49a0eeb7e3df /bin/sh
執行etcdctl member list可檢視到所有成員的狀態

step 6

確認訪問任何一台docker主機的ip

設定鍵值

curl /v2/keys/test -xput -d value="test value"
取得鍵值

curl /v2/keys/test

etcd搭建及使用

etcd搭建version 3.5 usr local bin etcd 啟動命令 data dir etcd data 指定節點的資料儲存目錄,這些資料報括節點id,集群id,集群初始化配置 name etcd 節點名稱 initial advertise peer urls http 2380 ...

etcd集群搭建

etcd是一種以key value形式的分布式儲存。etcd配置 name etcd1 名稱各個節點都是唯一的 client 配置 listen client urls 監聽client advertise client urls client對外提供服務 peer配置 用於節點內部通訊 liste...

etcd集群搭建

centos 192.168.3.65 node 1 centos 192.168.3.66 node 2systemctl stop firewalldyum install etcd cp etc etcd etcd.conf etc etcd etcd.conf.bak192.168.3.65...