數人云以前分享了《聊聊調度框架,K8S、Mesos、Swarm 一個都不能少》那麼你是否仍在Docker和Kubernetes選擇上陷入了困擾?因此不要擔憂,由於這也是不少人的苦惱,這二者都是很是優秀的容器服務,至於那種更好,其實在很大程度上取決於自身和團隊的需求。docker
在深刻研究前,咱們須要瞭解什麼是「容器」。安全
容器是輕量級、獨立的鏡像,能夠用來實現軟件,包含了成功運行應用所需的全部內容,工做方式相似於虛擬機(VM),可是它只包含必要的庫和設置來執行應用。框架
Docker Swarm、Kubernetes都提供了相同基礎設施中部署和隔離軟件的容器,也有很好處理應用的方式,但這二者之間也有一些關鍵性的區別:工具
不少工程師,都喜歡在Docker Swarm上工做,由於它很容易使用和實現,但選擇了Docker Swarm,它就會比Kubernetes更優秀嗎?性能
須要先了解一下什麼是Docker Swarm、Kubernetes。學習
Docker是一個開源平臺,它可能意味着一個公司,一個容器平臺或Docker集羣,本文討論的是容器技術,因此這裏提到的Docker的意思實際上是Docker Swarm,Docker Swarm是一個靈活的容器存儲平臺,以強大的易用性而著稱,另外一方面,Docker Swarm則徹底是爲了管理Docker引擎集羣。ui
Kubernetes是一個流行的開源容器存儲程序,它是由谷歌創建的,用來管理其系統,這是一個開源的、可擴展的、強大的工具,能夠處理容器,同時提供巨大的可伸縮性和自動化。spa
去年,做爲熱門遊戲之一的Pokemon Go,也使用了Kubernetes來管理它們的產品和快速擴展,Pokemon Go的成功,本身快速地傳播,讓人切實地感覺到了Kubernetes的力量。操作系統
安全和設置命令行
每一個工具都有本身的安裝和設置過程,想在雲端或其餘基礎設置中管理容器
,很大程度上取決於它是如何創建的,相比之下,Kubernetes對用戶的友好度並不如Docker Swarm。
Kubernetes:當涉及到安裝和設置時,它會給開發者出一些難題,首先,須要爲每一個操做系統(OS)從新配置,在線文檔在這個過程當中有不少的幫助,然而在構建定製環境時,可能會變得十分複雜,惟一的解決辦法是:搜谷歌。Kubernetes不容易安裝和設置的另外一個關鍵緣由在實現以前須要進行規劃,須要花費大量的時間和精力去規劃節點,並且要進行人工整合,由於它並非全部的東西均可以自動化,這讓Kubernetes難以管理。
Docker Swarm:得益於它的命令行界面(CLI),Docker Swarm很容易設置和管理,它使用CLI和GIT相似的語義,這使得應用開發者可以輕易地將新技術集成到工做流當中,與Kubernetes相比,在實現新操做系統、環境的容器時,無需學習新的東西。
綜上所述,在安裝和設置方面,Docker Swarm略勝一籌。
監控和日誌
一旦部署了容器,下一步就是監控節點集羣,Kubernetes和Docker Swarm都成功地提供了一個良好的監控和日誌記錄流程。
對於Kubernetes來講,監控和日誌記錄集羣的方法不止一種,下面有一些方法以供參考:
對於Docker Swarm來講,沒有內置的庫或進程來監控或記錄,可是開發人員可使用第三方應用來達到目的,第三方監控工具備:Sumo Logic , Retrace , Reimann , and DataDog。
伸縮和性能
使用容器服務的最基本原理是它們提供的可伸縮性,這兩個平臺都是高度可伸縮的,而且在特定的時間支撐數千個容器,起初,Docker Swarm對大量的容器沒有很好的支持,然而,在新的版本後,它就能夠支持和Kubernetes的容器數量比肩,兩個系統都支持1000個節點集羣,這些集羣能夠支持多大3萬個容器。
在性能方面,Kubernetes對Dokcer Swarm有良好的基礎,然而,由獨立機構完成研究代表,Docker Swarm能夠比Kubernetes快5倍的速度去運轉容器。
Kubernetes | Docker Swarm |
---|---|
在市場上最成熟的解決方案。 | Docker Swarm提供良好的特性,但受限於其API。 |
Kubernetes也在市場上最受歡迎的解決方案。 | rDocker Swarm的市場Kubernetes相比相對較弱。 |
Kubernetes很難安裝和配置。 | Docker Swarm的設置和安裝是很容易的。 |
Kubernetes提供內置的日誌記錄和監控工具。 | Docker只支持第三方監控和日誌記錄工具。 |
自動定量的CPU利用率是一個很大的因素。 | 能夠手動擴展服務。 |
Kubernetes獲得了開發者社區的普遍承認,儘管它的安裝過程很是艱難,之因此受到歡迎的緣由很大程度取決於它提供的靈活性,以及良好的谷歌背景,而Docker Swarm有一個小型的社區,增加略微緩慢。
Kubernetes的龐大社區意味着新的工具、特定和支持。若你是一個小的開發者,想要學習容器服務,那麼Kubernetes會有大量的經驗能夠借鑑,不少志同道合的朋友能夠一塊兒學習,而Docker Swarm一樣能夠根據自身業務需求更深刻了解。
原文做者:Damian Wolf
原文連接:https://dzone.com/articles/do...