ETCD節點故障恢復

我在微服務組裏面主要負責配置中心的構建,咱們的配置中心使用到了ETCD。在咱們的內網環境中搭建了三個節點的ETCD,不過這三個節點的ETCD都搭建在同一臺機器上。後來機器資源不夠了系統直接kill了ETCD,致使內網的ETCD三個節點所有掛掉了。剛開始想逐個啓動就完事了,可是按照以前的data-dir啓動以後發現三個節點握手存在問題,緣由是三個節點緩存數據的data目錄裏面都有節點以及數據信息,致使握手不成功。網上查了一些資料後發現這應該算是一次故障的恢復,解決方案是先以掛掉以前的一個節點爲基礎啓動只有一個節點的集羣,而後往這個集羣中添加新節點等待數據同步。事實上,ETCD分開部署掛半數如下仍是能夠正常訪問的,此次全掛了至關於從備份數據中恢復。緩存

 

下面是執行恢復的具體命令:微服務

etcd --data-dir=data.etcd2 --name machine-2 --initial-advertise-peer-urls http://127.0.0.1:12380 --listen-peer-urls http://127.0.0.1:12380 --advertise-client-urls http://10.1.45.52:12379 --listen-client-urls http://10.1.41.52:12379,http://127.0.0.1:2379 --initial-cluster machine-2=http://127.0.0.1:12380 --initial-cluster-token token-token --initial-cluster-state new --force-new-cluster >> /var/log/etcd/machine-2 2>&1 &

url

rm -rf data.etcd3 token

etcdctl member list
etcdctl member add machine-3 http://127.0.0.1:22380

etcd --data-dir=data.etcd3 --name machine-3 --initial-advertise-peer-urls http://127.0.0.1:22380 --listen-peer-urls http://127.0.0.1:22380 --advertise-client-urls http://10.1.41.52:22379 --listen-client-urls http://10.1.41.52:22379 --initial-cluster machine-2=http://127.0.0.1:12380,machine-3=http://127.0.0.1:22380 --initial-cluster-state existing --initial-cluster-token token-token >> /var/log/etcd/machine-3 2>&1 &
資源

 

rm -rf data.etcd1部署

etcdctl member list同步

etcdctl member add machine-1 http://127.0.0.1:2380

etcd --data-dir=data.etcd1 --name machine-1 --initial-advertise-peer-urls http://127.0.0.1:2380 --listen-peer-urls http://127.0.0.1:2380 --advertise-client-urls http://10.1.41.52:2379 --listen-client-urls http://10.1.41.52:2379 --initial-cluster machine-2=http://127.0.0.1:12380,machine-3=http://127.0.0.1:22380,machine-1=http://127.0.0.1:2380 --initial-cluster-state existing --initial-cluster-token token-token >> /var/log/etcd/machine-1 2>&1 &it

 

總計部署了三個節點,節點緩存數據的目錄分別是data.etcd一、data.etcd二、data.etcd3。我是刪除 data.etcd一、data.etcd3目錄保留data.etcd2目錄,而後用data.etcd2爲基礎進行恢復的。集羣

當時着急恢復就沒有記錄報錯信息,先記錄一下我恢復一下現場把詳細的報錯信息補充上基礎

相關文章
相關標籤/搜索