Docker Swarm 高可用詳解
阿新 • • 發佈:2018-11-10
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為管理主機。