在個人《Docker Swarm集羣初探》一文中,咱們實際體驗了Docker Swarm容器集羣技術的魅力,與《Kubernetes實踐錄》一文中提到的Kubernetes集羣技術相比,Docker Swarm沒有Kubernetes顯得那麼厚重,所以能夠認爲是更加輕量級的容器集羣技術,這也就意味着上手更加方便快捷,使用起來也要省事不少。做爲Docker集羣技術三(或「四」)架馬車之一的Docker Swarm,它從一開始即是Docker官方的「親兒子」,發展到如今也經歷了不少階段和迭代。做者在學習的過程當中也瞭解了一點其發展歷史,發現有幾個概念仍是挺容易混淆的,所以撰寫成文,是梳理,也是總結。docker
早在2014年末,Docker公司就設計了容器集羣的方案組合:Machine + Swarm + Compose。其中Machine主要用於快速建立Docker運行環境,其支持在建立出來的節點上自動部署Swarm,此時的Swarm咱們稱爲 「經典Swarm」,它是一款整合跨節點網絡的集羣式容器服務,其利用Docker守護進程的API,將多節點的計算資源進行彙總,並提供兼容Docker的運行API,使用者只須要在執行Docker命令工具時,用--host參數將目標設置爲Swarm服務的IP和端口,便可操做整個容器集羣。網絡
固然此時的Swarm侷限性較大,好比:負載均衡
因而就有了下面的SwarmKit的誕生。工具
在2016年2月,Docker公司開始了一個名叫 SwarmKit 的項目。而恰在Docker 1.12 RC以前的一段時間,Docker 發佈了 Swarmkit,這是一個獨立的、開源的容器編排項目。SwarmKit不一樣於一開始的經典Swarm,它從一開始就從新設計了一套獨立的API和模型體系,而且採用獨立的客戶端命令行工具:swarmctl
學習
和上面的經典Swarm模型相比,它加入了以下特性:spa
swarmd
命令負責管理,swarmctl
命令用於控制)然而此時的SwarmKit並無提供諸如服務發現、負載均衡和路由等功能。儘管如此,SwarmKit其實已是咱們今天普遍使用的Docker Swarm集羣技術的基石。命令行
Swarm Mode則更進一步,它在Docker 1.12版本開始爲你們所周知,一個 docker swarm
命令 紅遍大江南北,這個所謂的Swarm Mode其實就是咱們今天所普遍使用的Docker Swarm集羣技術。設計
然而Swarm Mode並非一個全新的東西,也並非一個全新的模式,而是站在SwarmKit的巨人肩膀上發展起來的,是Docker中的一組與集羣相關功能的統稱而已。Docker將SwarmKit的核心模塊內嵌於Docker的後臺服務之中,經過不一樣的命令容許使用者同時以「本節點」和「本集羣」這兩種視角來操做整個集羣,增長了集羣的管理、節點的管理、服務的管理和編排等等一系列高級特性,就像在個人《Docker Swarm集羣初探》一文中體驗的那樣。3d