Kubernetes 將來將走向何方?Pivotal 的首席技術專家 Paul Czarkowski 預測虛擬機(VM)將取代容器;紅帽的副總裁 Joe Fernandes 認爲虛擬機只是在幫助 Kubernetes 進化,而不會取代容器。此外,紅帽的高級產品營銷經理 Chris Short 表示,Kubernetes 很快就會取代虛擬機管理器(Hypervisor)。數組
Czarkowski 表示,雖然容器改進了軟件的構建和部署方式,它們也不像虛擬機那樣是安全的隔離沙箱。此外,容器是基於共享內核模型構建的,僅提供基本的進程隔離。Kubernetes 中的大多數組件都不是租戶感知(tenant aware)的,因此採用的是軟租戶模型,其中只有命名空間或 pod 安全策略級別是隔離的,但 API 倒是共享組件:安全
這種狀況致使了「多集羣」模式的興起,取代了「單個共享的大集羣」。常常能見到谷歌 GKE 服務的客戶爲多支團隊部署好幾十個 Kubernetes 集羣。一般每位開發者都有本身的集羣。這種習慣致使集羣數量快速增加到使人震驚的程度,足以稱做「Kuber 氾濫」了。服務器
爲了解決 Kuber 氾濫問題,Czarkowski 提議使用像 Kata Containers 這樣的微型虛擬機——它是一個「開源項目和社區,致力於構建輕量級虛擬機的標準實現,其形態和工做方式和容器很像,但提供了虛擬機具有的負載隔離和安全性優點「。他的提議不是使用許多 Kubernetes 控制面板,而是使用 Kata Containers 爲每一個租戶提供一個隔離的環境(包括 Kubernetes API),其中嵌套的 VM 容器在來自 AWS、Azure、GCP 或 vSphere 的虛擬機中運行。這種部署以下圖所示:架構
資料來源:Paul Czarkowski 撰寫的「Kubernetes 的將來就是虛擬機」app
在上圖中已經部署了兩個 Kubernetes 命名空間,分別是 foo 和 bar。每一個命名空間都有本身的 API、系統服務和 pod。這樣經過嵌套的虛擬機來支持多租戶集羣就能減小 Kuber 氾濫現象,而且這種底層基礎架構可用於在同一虛擬機中託管非容器工做負載。ide
另外,Short 說「使用 Kubernetes 做爲虛擬機管理器的想法很快就會變爲現實了」,使用像 KubeVirt 和 Kata Containers 等工具幫助組織遷移沒法容器化的老舊負載。KubeVirt 是虛擬機管理的附加組件,可在 Kubernetes 之上提供虛擬化解決方案。KubeVirt 容許沒法輕易容器化的老舊應用使用 Kubernetes 的內置功能,如自我修復、自動滾動升級(和回滾)、水平擴容等。Short 說:工具
這意味着虛擬機只要少許調整就能容器化了。根據現有的一些計劃,Kubernetes 將做爲虛擬機管理器開始改變數據中心和雲計算環境。性能
也就是說 Czarkowski 和 Short 的想法是互補的。Czarkowski 認爲 Kubernetes 將來將成爲融合新興技術的虛擬機,就像來自 AWS 的 Firecracker 和來自 Google 的 gVisor 那樣;而 Short 認爲虛擬機的將來就是 Kubernetes,組織會使用像 KubeVirt 這樣的工具將原有的應用遷移到 Kubernetes 上。雲計算
Fernandes 表示,將來的關鍵不是容器將取代虛擬機,而是如何使用 Kubernetes 來協調不一樣的負載,如傳統的基於虛擬機的負載或是微型虛擬機等。Kubernetes 將幫助組織現代化其負載,併爲容器、虛擬機甚至裸機基礎架構提供混合操做。還會有組織繼續在裸機基礎架構中運行負載,以經過硬件加速技術知足性能需求。或者也有公司像 Short 所說的那樣,但願經過虛擬機、微型虛擬機或藉助 KubeVirt 和 Kata Containers 等工具來遷移並進化現有的負載。spa
因此 Fernandes 認爲虛擬機不會取代容器。相反,Kubernetes 堆棧中虛擬機會不斷進化。2019 年的趨勢是 Kubernetes 與虛擬化開始相交,此外還興起了更開放的新思惟模式:Kubernetes 將開始使用容器和虛擬機來運行混合負載。
Fernandes 在帖子最後補充了 Short 和 Czarkowski 的觀點,他說 Kubernetes 的三大關鍵趨勢將是:
Kubernetes 編排微虛擬機,爲不受信任的負載提供更嚴格的多租戶隔離。
Kubernetes 編排和管理傳統的基於虛擬機的負載(經過 KubeVirt)以及基於容器的負載。
Kubernetes 集羣愈來愈多地部署在裸機服務器上,做爲基於虛擬機環境的 Kubernetes 的替代品。
你如何看待 Kubernetes 的將來?