來看看Container

 ·  ☕ 2 

VM 與 Container 架構圖

與 VM 相比使用 Container 具有各種優點,在要執行數百個應用程式的使用情境之下使用基於 Container 的解決方案顯得相當高效, Container 所佔的空間以及效能損失都優於 VM 。在需要快速回收資源與啟動服務的應用情境下,透過 Container 承載這些服務遠比選擇 VM 的效果要好,由於 Container 啟動的速度只需要幾十秒的時間, VM 啟動所需要的時間卻高達數分鐘。

VM 與 Container 比較表

VM Container
Communication 透過Ethernet Devices 透過IPC:Socket、pipes、Signals等機制
Guest OS 獨立的Kernel 共用宿主Kernel
Performance 效能消耗較大 效能消耗較小
Isolation 隔離性較好 隔離性較差
Startup time 數分鐘 幾十秒
Storage 佔較大空間 佔較小空間

僅透過 VM ,將相關的 service 部署到 VM 中以用來處理使用者請求的服務,由於 VM 的效能損失以及啟動時間的問題,採用 container 的方式可以大幅度節省效能的損失以及加速部署與產品上限的時間。

但是對於部署規模較大的運算叢集來說,Container 技術僅能縮短服務啟動的時間,並且沒有一個方便管理 Container 化叢集的方式與確認當前 Container 服務運行的狀態。若管理人員不小心刪除叢集的某一服務將造成災難性的危害。因此,需要建置一個 Container 叢集管理平台管理 Container 服務。

Google 累積多年管理 Container 叢集經驗,進而開發 Kubernetes Container 叢集調度技術的開源專案,同時也是目前業界廣為採用的 Container 叢集管理系統如公有雲的 AWS 的 EKS 、 Google 提供的 GKE 以及 Azure 的 AKS ,對於管理人員來說使用 Kubernetes 除了能大量減少建置叢集的複雜流程外,也可以透過 Kubernetes 內建的元件建置所需要 Container 服務,透過 Kubernetes 可以提高服務的可用性,因此以下將進一步說明 Kubernetes 的系統架構以及相關元件。

REF

  • Xavier, Miguel G., et al. “Performance evaluation of container-based virtualization for high performance computing environments.” 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing. IEEE, 2013.
  • Soltesz, Stephen, et al. “Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors.” ACM SIGOPS Operating Systems Review. Vol. 41. No. 3. ACM, 2007.
  • Burns, Brendan, et al. “Borg, omega, and kubernetes.” (2016).
  • Cherrueau, Ronan-Alexandre, et al. “Edge computing resource management system: a critical building block! initiating the debate via openstack.” {USENIX} Workshop on Hot Topics in Edge Computing (HotEdge 18). 2018.
  • Web.Kaust.Edu.Sa, 2019, http://web.kaust.edu.sa/Faculty/MarcoCanini/classes/CS240/F17/slides/L3-cloud-VM.pdf

Meng Ze Li
Meng Ze Li
Kubernetes / DevOps / Backend