一,3台主機情況

序號

主機系統

ip地址

etcd名稱

端口

描述

1

Ubuntu

192.168.59.128

etcd1

2379(客户訪問),2380(節點訪問)

ETCD節點實例

2

Ubuntu

192.168.59.129

etcd2

2379(客户訪問),2380(節點訪問)

ETCD節點實例

3

Ubuntu

192.168.59.130

etcd3

2379(客户訪問),2380(節點訪問)

ETCD節點實例

二, 安裝ETCD

1,下載etcd

地址:https://github.com/etcd-io/etcd/releases/tag/v3.6.0

ETCD之集羣部署(基礎)_集羣

2, 安裝【在1號機上安裝】

a, 將安裝包放在/usr/local/src/中

b,將安裝包解壓到 /usr/local/中

tar xzvf /usr/local/src/etcd-v.3.6.0-linux-amd64.tar.gz -C /

c,將解壓後的目錄/usr/local/etcd-v3.6.0-linux-amd64 改名 /usr/local/etcd。 (為了管理方便)

mv /usr/local/etcd-v3.6.0-linux-amd64 /usr/local/etcd

d,配置一個etcd.yaml文件, 我們放在/usr/local/etcd/etcd.yaml (這個文件需要自己創建)

# 定義當前ETCD節點名稱,該名稱在整個ETCD集羣中必須唯一,且需要通過該名稱實現ETCD集羣初始化
name: etcd1
# 定義ETCD數據持久化存儲目錄,該目錄可以根據需要配置存儲目錄
data-dir: /mnt/data/etcd
# 集羣標記,通過標記來區分不同的ETCD集羣,若干個ETCD節點的標記應該一致
initial-cluster-token: etcd-cluster-token
# 當前為新建集羣
initial-cluster-state: new
# 該節點在ETCD集羣中的通訊地址(********本服務器ID)
initial-advertise-peer-urls: http://192.168.59.128:2380
# 與地址ETCD節點通信時的監聽地址列表,多個地址使用都好分隔(*********本服務器ID)
listen-peer-urls: http://192.168.59.128:2380
# 當前ETCD節點與客户端通信時監聽地址
listen-client-urls: http://0.0.0.0:2379
# 廣播給集羣中其他ETCD成員的地址
advertise-client-urls: http://0.0.0.0:2379
# 配置集羣內部所有成員地址,採用“ETCD名稱=ETCD節點地址,...”的格式配置 (**********各個主機的通信配置)
initial-cluster: etcd1=http://192.168.59.128:2380,etcd2=http://192.168.59.129:2380,etcd3=http://192.168.59.130:2380
# 該節點參與選舉的最大超時時間(單位:毫秒)
election_timeout: 30
# 多少次事務提交後將觸發一次快照存儲操作
snapshot_counter: 60
# ETCD節點之間的心跳傳輸間隔(單位:毫秒)
heartbeat_interval: 10

3,將1號機上的ETCD組件拷貝到2,3號機上

3.1, 在1號機上操作

     a, 拷貝到2號機

scp -r /usr/local/etcd/ root@192.168.59.129:/usr/local/

b, 拷貝到3號機             

scp -r /usr/local/etcd/ root@192.168.59.130:/usr/local/

ETCD之集羣部署(基礎)_etcd_02

3.2, 更改2號機的etcd.yaml

ETCD之集羣部署(基礎)_分佈式_03

3.3, 更新3號機的etcd.yaml

ETCD之集羣部署(基礎)_分佈式_04

4, 為每一個主機創建存儲目錄

mkdir -p /mnt/data/etcd

5, 為每一個主機的數據存儲目錄授權

chmod -R 700 /mnt/data/etcd/

6,為每一個主機修改防火牆,對外開放2379和2380

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

三, 啓動所有節點

1, 前台啓動方案

/usr/local/etcd/etcd --config-file /usr/local/etce/etcd.yaml

2, 後台啓動方案

/usr/local/etcd/etcd --config-file /usr/local/etcd/etcd.yaml > /dev/null 2>&1 &

四,查看ETCD集羣的節點信息

1,簡陋打印

/usr/local/etcd/etcdctl --endpoints=192.168.59.128:2379,192.168.59.129:2379,192.168.59.130:2379 member list

ETCD之集羣部署(基礎)_集羣_05

2,表格樣式

/usr/local/etcd/etcdctl \
	--endpoints=192.168.59.128:2379,192.168.59.129:2379,192.168.59.130:2379 \
	member list --write-out=table

ETCD之集羣部署(基礎)_集羣_06

3,顯示集羣中的Leader 信息

/usr/local/etcd/etcdctl \
	--endpoints=192.168.59.128:2379,192.168.59.129:2379,192.168.59.130:2379 \
	endpoint status -w table

ETCD之集羣部署(基礎)_分佈式_07