研究了一段時間Consul,想寫個攻略來着,但太賴了而且表達能力非正常人。。。今天發現HashiCorp果然接納大眾意見改了點東西。。
場景是:
假如Consul集群內有三個Server Node 時,當一個節點突然掛掉了,想要重連怎么辦。
在之前的版本中方案有兩種:
1.部署完集群后將consul-data\raft\peers.json內的文件先備份,等到有節點掛掉后將peers.json文件替換成之前備份的文件然后通過-rejoin 如:consul agent -server -config-file=./conf -rejoin(peers.json內保存的就是ip節點的字符串數組,當一個節點掛掉后,其他節點會更新本地的peers.json文件移除掛掉的節點IP)
2.刪除consul-data內的所有內容 然后以新的服務身份假如節點(當然會發生數據丟失,所以不推薦)
最近發現0.6.3版本的Consul有節點掛掉后,其他節點的peers.json沒變化,好處是再也不用糾結的保存peers.json了況且還要挨個Server節點粘貼
但同樣 當一個Server節點我不想用了,死了就死了吧,或者我要換新的了!這時候consul內部有健康監測,會持續的對死掉的節點報警,peers里畢竟還多着一個沒用的ip呢。
解決方案是,需要關掉所有的consul server節點然后挨個服務器刪除peers下這個沒用的ip然后再重新啟動每個consul服務。。