這是Kata迄今爲止最令人興奮的版本,其中包括對Firecracker hypervisor、s390x架構的支持,並提供了與containerd項目集成的方法。
Firecracker支持
因爲知道在功能、資源佔用和安全性之間總是存在權衡,Kata Containers項目在設計時就考慮到要支持多個hypervisor。在1.4版本中增加了NEMU,比QEMU更加輕量級。11月底,AWS宣佈推出他們的Firecracker hypervisor。Firecracker GitHub主頁上寫道:“Firecracker採用了簡約設計,去除了不必要的設備和麪向客戶的功能,以減少每個微虛擬機的內存佔用和攻擊表面積。這樣可以提高安全性,縮短啓動時間,並提高硬件利用率。”
這對於Kata社區來說是一件令人興奮的事情,因爲它解決了最終用戶對簡單使用場景下的最小hypervisor解決方案的需求。
Kata Containers1.5版本引入了對Firecracker hypervisor的支持,這是對現有QEMU的補充。考慮到Firecracker可用功能的權衡,我們希望人們將Firecracker用於功能受限的工作負載,並在更高級的工作負載上使用最小的QEMU(例如,如果需要設備分配,可以使用QEMU)。
例如,在單個集羣中使用runc、kata-qemu(kata-runtime的QEMU配置)和kata-fc(kata-runtime的Firecracker配置)是很典型的,如下圖所示:
要實現這樣的配置,必須將集羣配置爲使用CRI-O或containerd,以及Kubernetes的runtimeClass功能。containerd正在開發當中,現在只有CRI-O支持devicemapper存儲驅動器。通過在Kubernetes和CRI-O中配置runtimeClass,最終用戶可以在每個工作負載上選擇他們喜歡的隔離類型。使用CRI-O、Kata Containers和Firecracker VMM的設置可以在這個截屏視頻中看到:https://asciinema.org/a/219790。
爲了幫助開發人員快速開始在Kubernetes中使用Kata + runtimeClass,這裏提供了一個沙盒https://github.com/clearlinux/cloud-native-setup/blob/master/clr-k8s-examples/。
Firecracker hypervisor採用了極簡設計。因此,在使用Kata + Firecracker時,在Kubernetes的功能方面總是會存在差距,導致無法動態調整pod的內存和CPU定義。同樣,由於Firecracker只支持基於塊的存儲驅動器和卷,現在需要用到devicemapper。這在Kubernetes + CRI-O和Docker 18.06版本中可用。開發人員正在添加更多的存儲驅動器選項。有關Kata + Firecracker的當前限制,請參閱https://github.com/kata-containers/documentation/issues/351。
我們很高興能與Firecracker團隊合作,並繼續改進對Firecracker VMM的支持,以及與Kubernetes的集成。
s390x架構支持
在來自IBM的社區成員的幫助下,Kata Containers1.5版本增加了對IBM Z-Series的支持。
containerd集成
去年六月,Michael Crosby開始了一個向containerd添加填充API的討論,以便更好地支持基於VM的運行時,比如Kata Containers。Kata Containers1.5版本提供了可以滿足該填充API的初始實現,極大簡化了Kata Containers與containerd的集成方式,如下所示:
除了明顯減少了組件之外,API還爲Kata Containers帶來了更好的接口,比如可以直接從Kata運行時訪問容器級別的統計信息,這在之前的命令行界面中是不可能的。同樣,因爲存儲器掛載是由containerd-shim來完成的,所以實現基於塊的containerd-shim-kata-v2快照程序支持應該會更加簡單。
Kata社區一直非常積極地使用CRI-O項目來定義和利用類似的接口,不過這項工作仍然在進行中,目標是在1.6版本中發佈。
期待
從1.5版本開始,我們有很多令人興奮的工作要做,以便更好地融入生態系統。我們也有很多不是那麼亮眼的工作:降低複雜性、提升安全性、提升測試覆蓋率和穩定性,以及爲在生產環境中使用Kata的用戶提供幫助。我最熱衷於那些不起眼的工作!
讀者可以通過以下渠道與社區取得聯繫:
- Slack或IRC Freenode:#kata-dev
- 郵件列表:http://lists.katacontainers.io/
- 週會:https://etherpad.openstack.org/p/katacontainers-2019-architecture-committee-mtgs
- Twitter:https://twitter.com/katacontainers?lang=en
英文原文:https://medium.com/kata-containers/kata-containers-1-5-release-99acbaf7cf34