Docker Swarm 高可用詳解

Docker Swarm 高可用詳解node

Manager管理節點宕機後其餘管理節點仍然能夠使用管理docker

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

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

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

worker:容器工做節點。spa

 

Manager節點任務3d

1. 維護集羣狀態code

2. 調度服務blog

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

一、管理節點:賦值其餘工做節點爲管理節點

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 是工做節點晉升的備用管理節點。

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

systemctl stop docker

三、備用管理節點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爲管理主機。

相關文章
相關標籤/搜索