1. 程式人生 > >Docker Swarm 高可用詳解

Docker Swarm 高可用詳解

Docker Swarm 高可用詳解

Manager管理節點宕機後其他管理節點仍然可以使用管理

intermal distributed state store:內部分散式狀態儲存同步共享到每個節點。

Manager:多個Manager已Raft來通過機制的選舉,進行高可用。

raft:通常通過投票的方式進行選舉,一般是奇數制的節點。

worker:容器工作節點。

 

Manager節點任務

1. 維護叢集狀態

2. 排程服務

3. 提供swarm模式的HTTP API


為了利用swarm模式的容錯功能,應保持叢集中奇數管理員來支援manager節點故障。當leader故障時,會選舉新的leader。

 

故障恢復:

如果swarm失去法定人數,swarm不能自動恢復,工作節點上的任務繼續執行,不受影響,但無法執行管理任務,包括擴充套件或更新服務,加入或刪除節點。恢復的最佳方式是將丟失的leader節點重新聯機。如果不可能,唯一方法是使用—force-newcluster管理節點的操作,這將去除本機之外的所有管理器身份。

docker swarm init --force-new-cluster --advertise-addr 192.168.1.79:2377

1、管理節點:賦值其他工作節點為管理節點

docker node promote 工作節點主機名1
docker node promote 工作節點主機名2
 
命令:docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
bmlecoeitwsbf1r6skpmiq6m5 slave01 Ready Active Reachable
kqkwgx5d87nt2mo42263r0dkj slave02 Ready Active Reachable
mcoe3f7kit5o60gp7v2f6wjc9 * management Ready Drain Leader
檢視節點狀態

注:Reachable 是工作節點晉升的備用管理節點。

2、管理節點:測試 關閉docker

systemctl stop docker

3、備用管理節點1:測試高可用故障跳轉

docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
bmlecoeitwsbf1r6skpmiq6m5 * slave01 Ready Active Leader
kqkwgx5d87nt2mo42263r0dkj slave02 Ready Active Reachable
mcoe3f7kit5o60gp7v2f6wjc9 management Down Drain Unreachable

注:當主管理節點down時,swarm通過raft選舉,自動跳轉到備用管理節點1中。

注:Leader為管理主機。