3個manager節點的swarm集羣,模擬manager節點故障和故障轉移


如果一個swarm集羣中,你有多個manager節點,比如3個,你的目的是什麼?

 

那還用說嗎,當然是一個manager掛掉之後,進行故障的轉移了,但是你經歷過這個轉移嗎?

 

如果沒有,跟着下面的過程,模擬一次。

 

首先,在集羣中有3個manager節點

 

[root@nccztsjb-node-01 ~]# docker node ls
ID                            HOSTNAME           STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
gxfkhuc95br6ltkhorpw1q4tq *   nccztsjb-node-01   Ready     Active         Leader           20.10.17
8zjicf39fk28jn106symk1g5e     nccztsjb-node-02   Ready     Active                          20.10.17
7d59usghrgq05k0yh4lbykw5v     nccztsjb-node-04   Ready     Active         Reachable        20.10.17
wnd24l698iruhhp1xw0y3iyig     nccztsjb-node-05   Ready     Active         Reachable        20.10.17

 

節點nccztsjb-node-01是管理節點,目前的角色是Leader.

 

其他兩個manager節點,目前都是Reachable的狀態。

 

 

接下來,關閉nccztsjb-node-01這個manager節點:

 

直接將docker引擎給關閉了:

[root@nccztsjb-node-01 ~]# systemctl stop docker 
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
[root@nccztsjb-node-01 ~]# systemctl stop docker.socket
[root@nccztsjb-node-01 ~]# docker node ls
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@nccztsjb-node-01 ~]# 

 

 

從其他的manager節點查看狀態:

 

nccztsjb-node-04:

 

[root@nccztsjb-node-04 ~]# docker node ls
ID                            HOSTNAME           STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
gxfkhuc95br6ltkhorpw1q4tq     nccztsjb-node-01   Down      Active         Unreachable      20.10.17
8zjicf39fk28jn106symk1g5e     nccztsjb-node-02   Ready     Active                          20.10.17
7d59usghrgq05k0yh4lbykw5v *   nccztsjb-node-04   Ready     Active         Reachable        20.10.17
wnd24l698iruhhp1xw0y3iyig     nccztsjb-node-05   Ready     Active         Leader           20.10.17
[root@nccztsjb-node-04 ~]# 

 

 

發現,目前nccztsjb-node-01是Down的狀態,並且是Unreachable的,更加重要的是,已經選舉出來新的Leader nccztsjb-node-04

 

nccztsjb-node-05:

 

[root@nccztsjb-node-05 ~]# docker node ls
ID                            HOSTNAME           STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
gxfkhuc95br6ltkhorpw1q4tq     nccztsjb-node-01   Down      Active         Unreachable      20.10.17
8zjicf39fk28jn106symk1g5e     nccztsjb-node-02   Ready     Active                          20.10.17
7d59usghrgq05k0yh4lbykw5v     nccztsjb-node-04   Ready     Active         Reachable        20.10.17
wnd24l698iruhhp1xw0y3iyig *   nccztsjb-node-05   Ready     Active         Leader           20.10.17
[root@nccztsjb-node-05 ~]# 

 

 

目前,這個節點就是Leader節點。

 

通過上面的輸出,你已經可以看到,輕鬆的實現了manager節點的故障轉移,選取出來了新的Leader角色。

 

到這裏完了嗎?當然沒有

 

如果節點恢復呢······

 

[root@nccztsjb-node-01 ~]# systemctl start docker
[root@nccztsjb-node-01 ~]# 
[root@nccztsjb-node-01 ~]# docker node ls
ID                            HOSTNAME           STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
gxfkhuc95br6ltkhorpw1q4tq *   nccztsjb-node-01   Ready     Active         Reachable        20.10.17
8zjicf39fk28jn106symk1g5e     nccztsjb-node-02   Ready     Active                          20.10.17
7d59usghrgq05k0yh4lbykw5v     nccztsjb-node-04   Ready     Active         Reachable        20.10.17
wnd24l698iruhhp1xw0y3iyig     nccztsjb-node-05   Ready     Active         Leader           20.10.17
[root@nccztsjb-node-01 ~]# 

 

 

可以看到,恢復之後,還是manager節點,但是狀態是Reachable。沒有恢復到Leader的角色。

 

OK,這個就是模擬了一個3個manager節點的故障、轉移的過程。你懂了嗎?

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