環(huán)境
[root@test-node-3 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@test-node-3 ~]# etcd --version
etcd Version: 3.3.11
Git SHA: 2cf9e51
Go Version: go1.10.3
Go OS/Arch: linux/amd64
[root@test-node-3 ~]# etcdctl version
etcdctl version: 3.3.11
API version: 3.3
第一步:
1.安裝
yum install -y etcd.x86_64
2.啟動單節(jié)點
systemctl enable etcd.service
systemctl stop etcd.service
systemctl start etcd.service
systemctl status etcd.service
3.靜態(tài)發(fā)現(xiàn)集群
## 節(jié)點1
etcd --name infra0 --initial-advertise-peer-urls http://192.168.30.81:2380 \
--listen-peer-urls http://192.168.30.81:2380 \
--listen-client-urls http://192.168.30.81:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.30.81:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster infra0=http://192.168.30.81:2380,infra1=http://192.168.30.82:2380,infra2=http://192.168.30.83:2380 \
--initial-cluster-state new
## 節(jié)點2
etcd --name infra1 --initial-advertise-peer-urls http://192.168.30.82:2380 \
--listen-peer-urls http://192.168.30.82:2380 \
--listen-client-urls http://192.168.30.82:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.30.82:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster infra0=http://192.168.30.81:2380,infra1=http://192.168.30.82:2380,infra2=http://192.168.30.83:2380 \
--initial-cluster-state new
## 節(jié)點3
etcd --name infra2 --initial-advertise-peer-urls http://192.168.30.83:2380 \
--listen-peer-urls http://192.168.30.83:2380 \
--listen-client-urls http://192.168.30.83:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.30.83:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster infra0=http://192.168.30.81:2380,infra1=http://192.168.30.82:2380,infra2=http://192.168.30.83:2380 \
--initial-cluster-state new
etcd偵聽listen-client-urls接受客戶端流量
etcd成員將指定的URL通告advertise-client-urls給其他成員吹零,代理,客戶端志衣。
## 顯示集群信息
export ETCDCTL_API=3
etcdctl --write-out=table --endpoints=localhost:2379 member list
## 列出集群內(nèi)所有成員
etcdctl member list
第二步:和etcd
交互
默認车摄,為了向后兼容 etcdctl 使用 v2 API 來和 etcd 服務器通訊。為了讓 etcdctl 使用 v3 API 來和etcd通訊骇扇,API 版本必須通過環(huán)境變量 ETCDCTL_API 設置為版本3映砖。
## 通過環(huán)境變量 ETCDCTL_API 設置為版本3
export ETCDCTL_API=3
## 寫入鍵(這是設置鍵 foo 的值為 bar 的命令:)
etcdctl put foo bar
etcdctl put foo1 bar
etcdctl put foo2 bar
etcdctl put foo3 bar
## 讀取所有鍵间坐、讀取一個鍵、讀取 foo to foo3 的鍵
etcdctl get *
etcdctl get foo
etcdctl get foo foo3
## 讀取所有以`foo`開頭的鍵邑退、只顯示前兩個
etcdctl get --prefix foo
etcdctl get --prefix --limit=2 foo
## 刪除鍵
etcdctl del foo
etcdctl del foo foo9
etcdctl del --prev-kv zoo
## 觀察鍵的變化竹宋、觀察 foo to foo9范圍內(nèi)鍵的變化、觀察前綴為 foo 的鍵
etcdctl watch foo
etcdctl watch foo foo9
etcdctl watch --prefix foo
## 觀察多個鍵 foo 和 zoo 的命令
etcdctl watch -i
watch foo
watch zoo
## 從修訂版本 2 開始觀察鍵 `foo` 的改動
etcdctl watch --rev=2 foo
## 在鍵 `foo` 上觀察變更并返回被修改的值和上個修訂版本的值
etcdctl watch --prev-kv foo
## 壓縮修訂版本(在壓縮修訂版本之前的任何修訂版本都不可訪問)
etcdctl compact 5
etcdctl get --rev=4 foo ## 會報錯
etcdctl get --rev=4 foo ## 可以使用地技,但是為空蜈七,待測試
etcdctl watch --rev=4 foo ## 會報錯
etcdctl watch --rev=5 foo ## 可以使用
附錄:
參考:http://etcd.doczh.cn/documentation/
參考:https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/clustering.md
官網(wǎng):https://coreos.com/etcd/docs/latest/