《深入剖析Kubernetes》總結一:Docker的歷史

Docker的盛行

一開始流行的是PaaS平臺,能夠幫助用戶大規模部署應用到集羣裏;
用戶把應用的可執行文件和啓動腳本打進一個壓縮包內,上傳到雲上的存儲中,接着,雲會通過調度器選擇一個可以運行這個應用的虛擬 機,然後通知這個機器上的 Agent 把應用壓縮包下載下來啓動。
內部調用操作系統的 Cgroups 和 Namespace 機制爲每一個應用單獨創建一個稱作“沙盒”的隔離環境,然後在“沙盒”中啓動這些應用進程,這樣,就實現了把多個用戶的應用互不干涉地在 虛擬機裏批量地、自動地運行起來的目的。

PaaS有一個很難受的地方,就是一旦用上了 PaaS,用戶就必須爲每種語言、每種框架,甚至每個版本的應用維護一個打好的包。這個打包過程麻煩的是,明明在本地運行得好好的應用,卻需要做很多修改和配置工作才能在 PaaS 裏運行起來。而這些修改和配置, 並沒有什麼經驗可以借鑑,得靠不斷的嘗試、Debug

而Docker的鏡像就解決了這個問題:Docker 鏡像其實就是一個壓縮包,但是這個壓縮包跟PaaS 的應用可執行文件 + 啓停腳本不一樣。實際上,大多數 Docker 鏡像是直接由一個完整操作系統的所有文件和目錄構成的,所以這 個壓縮包裏的內容跟本地開發和測試環境用的操作系統是完全一樣的,因此就不需要進行任何配置或者修改了

所以Docker就火了!

Docker的其他項目

  • Swarm(PaaS第一環)

以一個整體來對外提供集羣管理功能,完全使用 Docker 項目原 的容器管理 API 來完成集羣管理

  • Docker Compose:起到容器編排的作用(PaaS第二環)

“編排”(Orchestration)在雲計算裏主要是指用戶如何通過某 些工具或者配置來完成一組虛擬機以及關聯資源的定義、配置、創建、刪除等工作,然後由雲計算平臺按照這些指定的邏輯來完成的過程;
在容器中,則是對 Docker 容器的一系列定義、配置和創建動作的管理,比如現在用戶需要部署的是應用容器 A、數據庫容器 B、負載均衡容器 C,那麼Compose就允許用戶把 A、B、C 三個容器定義在一個配置文件中,並且可以指定它們之間 的關聯關係,比如容器 A 需要訪問數據庫容器 B。

Kubernetes

Kubernetes成功之處,在於比Swarm更加的開源,催生出了Istio等項目、與Swarm不同的特性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章