Docker下ETCD集羣搭建

Docker下ETCD集羣搭建

https://www.cnblogs.com/eagle6688/p/8287907.html

搭建集羣之前首先準備兩臺安裝了CentOS 7的主機,並在其上安裝好Docker。

Master 10.100.97.46

Node 10.100.97.64

ETCD集羣搭建有三種方式,分別是Static(靜態方式),Discovery(服務發現方式),DNS discovery (DNS發現),官方文檔https://coreos.com/etcd/docs/latest/op-guide/clustering.html。

比較三種方式,Static方式最方便簡單。我們在這裏使用添加主機的方式搭建集羣,先假裝Master機器不知道Node機器的存在,然後再把Node節點添加進來。

1. 首先獲取ETCD鏡像,兩臺主機都有(以下簡稱two)。

該鏡像的版本信息:https://hub.docker.com/r/eagle6688/etcd/

docker pull eagle6688/etcd

2. 開放ETCD通信使用的接口,two:

sudo firewall-cmd --zone=public --add-port=2379/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2380/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

最後那行代碼顯示已經打開的所有端口。

3. 創建數據掛載目錄,two:

sudo mkdir -p  /var/data/etcd

4. 在Master機執行:

複製代碼

docker run \
  -it \
  -p 2379:2379 \
  -p 2380:2380 \
  -v /var/data/etcd:/data \
  --name etcd-master \
  eagle6688/etcd \
  --name etcd-master \
  --data-dir /data \
  --listen-peer-urls http://0.0.0.0:2380 \
  --listen-client-urls http://0.0.0.0:2379 \
  --initial-advertise-peer-urls http://10.100.97.46:2380 \
  --initial-cluster etcd-master=http://10.100.97.46:2380 \
  --initial-cluster-state new \
  --initial-cluster-token eagle-cluster \
  --advertise-client-urls http://10.100.97.46:2379

複製代碼

注意,第8行我們給etcd節點起的名字要跟13行的name相同,配置node節點時類似。此外,這裏的配置僅僅跟master節點自身有關,此時它還不知道有node的存在。

5. 測試master節點:

分別在master節點和node節點執行下面的語句以測試master節點的有效性:

curl http://10.100.97.46:2379/v2/members

該語句應該返回包含master節點信息的json字符串。

6. 添加node節點

在node機調用master的api添加自己

curl http://10.100.97.46:2379/v2/members -XPOST -H "Content-Type: application/json" -d '{"peerURLs":["http://10.100.97.64:2380"]}'

此時,master節點會暫停下來等待node節點的加入。

7. 啓動node節點上的etcd

複製代碼

docker run \
  -it \
  -p 2379:2379 \
  -p 2380:2380 \
  -v /var/data/etcd:/data \
  --name etcd-G510 \
  eagle6688/etcd \
  --name etcd-node \
  --data-dir /data \
  --listen-peer-urls http://0.0.0.0:2380 \
  --listen-client-urls http://0.0.0.0:2379 \
  --initial-advertise-peer-urls http://10.100.97.64:2380 \
  --initial-cluster etcd-master=http://10.100.97.46:2380,etcd-node=http://10.100.97.64:2380 \
  --initial-cluster-state existing \
  --initial-cluster-token eagle-cluster \
  --advertise-client-urls http://10.100.97.64:2379

複製代碼

注意,initial-cluster要包含所有節點,initial-cluster-state必須是existing。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章