圖片來源: 

Docker

繼DockerCon上推出內建調度功能的Docker 1.12版後,近日可部署於線上環境的正式版也已經釋出。Docker表示,經由外部社群的貢獻、協力開發,相比最早內建調度功能的Docker,「目前調度規模已經成長了1倍。」此版本也引入管理者節點(Manager)、工作節點(Worker)設計,讓企業在建立Docker叢集時,能夠更細緻地分類各節點,藉以建立更複雜、分工更細的叢集架構。

在新版本Docker中,使用者可自行決定是否開啟內建調度功能Swarm模式,Docker Swarm則由數個分散式、高可用性的Docker節點所組成。每個Docker節點都自成調度子系統(Orchestration subsystem),可以建立共享資源池,對Docker化服務進行排程。

這樣的設計思維,使開發者可以利用Docker叢集,建構可程式化拓樸(Programmable Topology)架構,因此,企業可以自行指定Docker節點的角色為管理者節點或是工作節點,例如,在資料中心內跨區部署不同的管理者節點。同時,開發者也可以透過API、命令程式介面,動態地更改不同節點的角色。

Docker表示,管理者節點執行的工作為調度叢集、協調容器工作排程、檢查運作狀況不佳的容器,以及提供服務API運作等。而工作節點負責的工作則相對簡單,例如創建容器,或將資料傳送至指定容器中。

同時,Docker也建議在正式環境中導入Docker的使用者,將節點角色指定為管理者節點或是工作節點。Docker解釋,藉此,管理者節點就不需運行容器,除了可以降低管理節點的工作負載。同時,將節點角色畫分更細緻,亦能減少攻擊面(Attack Surface)。此外,企業可以設定工作節點的操作權限,讓其無法存取服務API、資料倉儲內資料,僅能接受工作指派,或是回報系統狀況。萬一有攻擊者奪取工作節點的控制權,也能讓減少系統遭攻擊後影響的範圍。考量不同節點間溝通對於速度、容量的需求,Docker也使用不同的技術協定,橋接各節點間的溝通。此外,每個節點間的資料傳輸一律預設採取MTLS加密。

例如,為了滿足管理者節點間傳輸一致性(Consistency)需求,Docker會將管理者節點納入Raft一致性群組(Raft Consensus Group), 進行資訊分享。在Raft群組中的一個管理者節點,會被推派為指揮者(Leader),掌握節點名單、任務,或是進行排程調度。

而管理者節點則是使用gPRC協定,與工作節點溝通。Docker表示,gRPC協定除了能允許以HTTP/2為基礎的連線外,也內建版本管理功能(Versioning),讓運行不同Docker引擎的工作節點,也能夠跟統一的管理者節點溝通。除了管理者節點會發派任務至工作節點,工作節點也會回報任務狀態等資訊。

最後,工作節點之間則使利用Gossip網路(Gossip Network)互相連結。Docker解釋,Gossip網路包含P2P、高容量的特點,適用於大規模的應用情境。當工作節點接收任務後,除了會開啟容器外,此節點亦會通知其餘節點,此容器位在的覆蓋網路(Overlay Network)。Docker表示,透過Gossip網路,訊息僅會在特定節點內傳送。

此外,Windows版Docker及Mac版Docker也推出了正式版本。


Advertisement

更多 iThome相關內容