目前主要的容器管理技術是以Docker為主流,其中Google Kubernetes雖是最盛行的容器調度平台,但另一方面,Docker Swarm卻占有Docker原生與組態設定較為簡單的優勢,所以也受到不少使用者的支持。本文將介紹Docker Swarm容器調度管理平台的特色,並實際示範如何部署及設定。
首先,在Docker Swarm叢集運作架構中,因為擔任Manager角色的Docker Swarm節點主機,主要是透過Raft一致性演算法來管理Docker Swarm叢集運作狀態。因此,當新增的Docker Swarm節點主機加入Docker Swarm叢集,或是有Docker Swarm節點主機退出Docker Swarm叢集時,所有擔任Manager角色的Docker Swarm節點主機,便需要執行同步、確認、更新、複寫等等Docker Swarm叢集運作狀態的工作任務。
但是,當擔任Manager角色的Docker Swarm節點主機數量「過少」時,有可能因為Manager主機故障損壞,進而導致Docker Swarm叢集崩潰;反之,若Manager角色Docker Swarm節點主機數量「過多」,則會因為叢集維運工作任務的往返網路流量過大,導致同步和更新狀態的寫入效能降低。
簡單來說,在Docker官方的最佳建議做法當中,擔任Manager角色的Docker Swarm節點主機數量應為「奇數」,最主要是考量Docker Swarm叢集中的「仲裁」(Quorum)及「容錯」(Fault Tolerance)機制。
因此,整個Docker Swarm叢集的最佳建議做法中,最小規模應建置「3台」擔任Manager角色的Docker Swarm節點主機,此時可容許「1台」Manager角色主機發生故障損壞事件,並且不影響Docker Swarm叢集的運作,如圖4所示。
|
▲圖4 Docker Swarm叢集Manager角色節點主機數量建議表。(圖片來源:Docker Documentation - Administer and maintain a swarm of Docker
Engines) |
同理,倘若在Docker Swarm叢集中建置「5台」擔任Manager角色的Docker Swarm節點主機,將能容許「2台」Manager角色主機發生故障且不影響Docker Swarm叢集的運作。
實戰Docker Swarm on Windows
在本文實作環境中,將準備「3台」Windows Server 2016主機,先下載和安裝Docker容器環境,再建置Docker Swarm叢集環境,而這3台Windows Server 2016 Docker主機,將會「同時擔任」Docker Swarm叢集環境中的Manager和Worker角色,這3台主機的基礎設定資訊如表1所示。
表1 3台主機的基礎設定資訊
Windows Server 2016安裝Docker環境
管理人員只要透過OneGet Provider機制,即可輕鬆安裝PowerShell中的Docker模組,順利讓Windows Server 2016主機運作Docker容器環境。