如何看待 KubeCon"17 上發布的 Kata Containers?

主頁: The speed of containers, the security of VMs

GitHub: Kata Containers

OpenStack 基金會發布了最新開源容器項目 Kata Containers,旨在將虛擬機(VM)的安全優勢與容器的速度和可管理性統一起來。

Kata Containers 設計為硬體無關,與 Open Container Initiative(OCI)標準、Kubernetes 容器運行時介面(CRI)兼容,Kata Containers 提供直接在裸機上運行容器管理工具並實現工作負載強安全隔離的能力。與當前標準的在虛擬基礎設施上運行容器的方式相比,其性能更高,啟動速度更快,更具成本效益。


謝 @高策 邀

&> 先佔位,下午剛在 KubeCon 上講了 Kata Containers 的 session,正在寫明天的 Panel 用的另一個材料,全寫完補充回答,等到 Panel 上有人懟之後,來完整回答下各方如何看待的。 KubeCon 之後連 Wang Xu:如何評價 AWS Fargate? 這個回答一起更新。

## 更新記錄

  • 更新1:按照佔位時所說的,補充 Kata Containers 項目介紹和發布反響
  • 更新1.1: Henry 拍的照片更新上

## 關於 Kata Containers

  • Kata Containers 是一個新的項目,管理在 OpenStack Foundation 下面,但獨立於 OpenStack 運作,有自己的管理委員會和技術委員會,我個人是技術委員會(Architecture Comittee)的初始成員;
  • Kata Containers 不是另起爐灶的,是基於已經有兩年發展的兩個虛擬化容器項目的工作的—— 我所在團隊的 Hyper runV,以及 Clear Containers,後者來自著名的 Intel OTC;

kubecon 主題演講照片

  • 項目合併的具體架構是在9月份,由我和我司同事、Intel OTC GM Imad Sousou, Clear Containers 項目經理 Amy Leeland,以及 OpenStack 的管理層,在九月份敲定的;合併的具體事務是10月份由我和我司同事、Intel Clear Containers 團隊以及 OpenStack Foundation 在奧斯汀確定的。這也是我今年後四個月飛了三次美國、兩次奧斯汀的原因。
  • 項目的主要目標是,面向容器應用的輕量級虛機(參見 Wang Xu:如何評價 hyper_? 細節我就不再寫一次了),兼容 Kubernetes CRI 和 OCI 標準。

## 發布的反響

項目是在 KubeCon 正式大會前一天發布的,所以,主時區是奧斯汀所在的美國中部時區,當天,相關人員除了在家堅守的以外,大多集中在奧斯汀。

早上七點,通過 TechCrunch 正式發布了合併新聞稿,並發布了 ITNews 和相關推文,我把轉推的內容發到朋友圈,在我聊聊七百來個好友那裡,收集了一百個贊,大致相當於「喜得貴子,母子平安」的感覺,中文新聞也得到了大量轉發,感覺如果裡面有假內容的話,恐怕要擔刑責了。

當天早上八點,和 OCI/CNCF 的 Chris Aniszczyk 一起喝了咖啡,他代表 OCI 表示支持 Kata 項目作為 OCI 標準的一個運行時實現,並期待進一步的合作。同時,作為奧斯汀土著,他還向我推薦了跑步路線,當天我按照他的路線跑了11km,隨後互相加了 strava 好友,這都是後話了。

KubeCon首日,Intel 軟體VP、OTC GM Imad Sousou 正式在主題演講上介紹了項目。

項目的合併得到了各方廣泛的支持,從初始成員看,

  • 目前各位看到的有 Google Cloud,華為(華為之前在 runV 有貢獻,並不只是列名字的支持者),還包括 Red Hat , SuSE, Ubuntu, Dell EMC 和 CoreOS 等傳統操作系統、IT廠商和 Kubernetes 廠商,
  • 包括我的老東家中國移動,我的老領導所在的京東雲和 Ucloud 以及另一個中國主要的雲服務商騰訊雲也在裡面。
  • 中國最大的雲服務商阿里雲和母公司阿里,其實同樣參與了 runV 的工作,非常感謝 @孫宏亮 對項目的貢獻,他們也表示未來會繼續支持,只是由於法務原因,不能在發布的時候加入項目。
  • 可以看到項目合併的時間表非常緊湊,所以還有些其他大公司的程序同樣不太能走完,所以,後期我們還有很多重要的合作夥伴會加入進來,比如 runV 的合作夥伴 ARM,以及另外一些很大的廠商。
  • 說到這裡,贊一下我的老東家中國移動,之前和他們有過接觸,11月悉尼 OpenStack Summit 上和老領導(老指資歷,不是年齡,論年齡只比我大不到半年多,慚愧死了)具體介紹了敲定合併的內容,他們就在幾個星期內順利完成流程,成為了初始成員,效率之高讓我感覺者完全不是我離職時的那家公司,作為回報,KubeCon 首日主題演講上的這個圖,對得起他們吧。

kubecon 主題演講照片

  • 此外還有一些 openstack 公司在 openstack foundation 感召下也迅速加入了,所以就有了朋友圈裡,很多公司都聯合 Intel 和 Hyper 發布了這個項目,其實也沒說錯啥啊,不過,Google 和 CoreOS 是這麼說的,我感覺這樣我看著覺得更低調一點。當然,低調不是國內一般 startup 的生存方式,你看我現在不是也不太低調么,所以我覺得他們這樣是可以的。

發布首日的一些合作夥伴反響

## 首日 Session

我講過很多大會 Session,會場如今天規模的也有幾次,不過今天后面佔滿人這種情況我第一次遇到,Intel 加進來的影響力就是不一般啊。

  • 這個 Session 本來是我投稿的 runV 的演講,已經中了,並不是後來捐的,不過我把它改了個標題,把 runV 改成 kata 了,算是我們對 kata 的一次特別 contribution;
  • 改標題後,加上了 Intel Clear Container 的 Tech Lead Samuel 一起進行的;
  • 除了 Intel 和我司的同事外,OpenStack Foundation 管理層、Kubernetes Node Team 的朋友,華為和其他圈子裡的朋友,以及其他認識的和不認識的國內來的朋友,很多之前 runV 的用戶和貢獻者,悉尼 Summit 一起跑步的跑友,全都來圍觀了;
  • 會後有不少討論,還有 runV 用戶關心了 kata 是否可以繼承 runV 的 feature,在得到肯定答覆,並知道會有更進一步改進後,露出了會心的微笑;
  • 有一位索尼PS部門的朋友來聊了兩句,我表示我是索粉,我用索尼相機,我是前 Xperia 用戶,我有索尼DV,PSP,我們辦公室有PS4……然後他似乎忘了要問啥了,寒暄後確認幻燈片有公開發布後撤了;
  • 感謝 VMWare Henry 在 session 上給我照的銷魂的照片,並肯定了我減肥的成果,而且他表示 VMWare VIC 的架構師也在現場,非常遺憾當時沒看到 Henry 揪住 VIC 的架構師聊聊,其實我想知道他如何看待,可是他不來知乎回答,呵呵,明天找一下吧。

KubeCon 本人現場照片,Hyper Tee 配 Kaata Containers 帽衫 感謝 Henry

## 隨後反響

未來的事情還沒發生,請等待二更


阿里巴巴開源的容器技術 Pouch 之前是基於runV來實現hypervisor-based container的,未來會找時機切換到kata container。這個技術在雲化路線中的多租戶場景中,價值是非常大的。


首先,小編認為,這是一個很棒的項目。對於 VM + Container 的性能損失,業界的容忍度正在下降,而 Kata Containers 帶來了解決方案。

容器的安全隔離性從一開始就是一個問題,共享內核之下,有 Namespace 和 Cgroup 還不夠,尤其是採用 Docker 的公有雲平台。主流的解決辦法是在虛擬機之中建立容器,網易雲也採用這種折中方案,但為了保證容器的性能,團隊在後端存儲、網路和虛擬化層都做了大量的優化工作,過程非常痛苦。

從網易雲在7月份的網易雲創大會上發布基於裸金屬的超級容器,到某 h 友商近期也推出了裸金屬容器,再到 Kata Containers 的推出,說明雲計算圈子對強隔離性的性能損失還是非常在意

事實上,Hyper 和 Intel Clear Linux 兩個社區也很早就在探索將如何 VM 和 Container 技術相結合,增強容器間的隔離性,同時盡量避免性能損失。Kata Containers 的推出,是社區的一個成果。

其次,Kata Containers 由 OpenStack 基金會管理,但它是一個獨立的項目,介面對接標準的 OCI 和 CRI,支持復用 Container 生態的工具,這表明容器越來越普及,而社區對 Kata Containers 的期待也很高,不局限於 OpenStack 生態

第三,技術上,Kata Containers的本質,還是跑在 hypervisor 上的容器,但是做了內核定製,搞了 SR-IOV、多隊列等。這意味著,在實際業務場景中的性能損失,還是要經過更多的驗證,尤其是在業務負載很重的場景下,問題會更加明顯。如果性能沒有說服力,Container 用戶遷移的意願不會很太大,畢竟 Docker 的生態和成熟度有優勢。

順便說一下,網易雲發布的超級容器,沒有 hypervisor 層,沒有嚴格介面 OCI,使用 Xeon 2680 v4、自研 NBS 塊存儲,採用 DPDK、SR-IOV、IO 優化等技術,性能提升非常明顯,但是犧牲了隔離性,目前用戶還只能在網易雲專屬雲(在公有雲上物理隔離出一個專屬區域)上體驗

所以,小編預計, VM 和 Containers 還是會長期並存

沒錯,小編就是來做廣告的。如果要研究開源技術,請訪問 Kata Containers 官網;如果想要體驗超級容器,請關注網易雲專屬雲。

如果還在質疑容器在實際業務開發中到底有什麼價值,請參考《雲原生應用架構實踐》。


一直覺得docker和openstack在雲計算領域不是一個量級的,二者不可比較,為毛?網路啊!

openstack強大毋庸置疑,包羅萬象,但docker用著沒辦法,就一個字,爽!是的,docker就目前需求來說,完勝openstack,原諒我詞窮,反正前者就這種好用,但我覺得二者不能這麼比較的。docker更像是一種工具(devops?!),其層面在虛擬化+編排,用著vxlan實現overlay網路;openstack是一種架構,存儲可以接ceph,網路接各種sdn,虛擬化接kvm啥的( 0. 0這裡容器和虛機的對比為毛總變成和openstack的比較),還有裸機管理??說到這裡是不是想到了tripleO,沒錯,「但是」就在這裡,光是部署就夠繁瑣的了,太強大也太難駕馭。

但是,openstack是能去擁抱docker來完善自己的,比如kolla項目,將各種服務打包,甚至還嫌棄你不夠強大,這不有了kata項目(手動劃重點,我沒偏題 ),容器都開始實現內核隔離了,只能說發展太快,學習跟不上啊。

然而,一切的一切,因為網路實現的原因,docker要一直隨著功能增加去堆砌協議么?而openstack的neutron使用sdn,必將隨著雲的邊界擴張(比如硬體網路設備支持,ICP遷移成東西流量等),達到docker註定到不了的高度??咳咳,正因為neutron也就實現了全局一跳收斂,外加一些高級網路服務,目前需求也不高,所以優勢才不那麼明顯。期待sdn真正輝煌時代的降臨,帶來一場IT界的變革!最後一個but,安全領域的道路,無論哪個都任重道遠啊!

0. 0??認知錯誤之處,還望各位大神指正。


補充一點。


推薦閱讀:

VMware 為什麼把 Workstation 和 Fusion 團隊給撤了?
虛擬化與雲計算有什麼區別?
硬體虛擬化的原理是什麼?
虛擬化承載層是什麼意思?
一個膽小怕事的人怎麼去做應用虛擬化軟體的銷售?

TAG:雲計算 | 虛擬化 | OpenStack | Kubernetes | 容器雲 |