劃重點git
PouchContainer github.com/alibaba/pou… 是一款輕量級、開源的富容器技術,擁有快速高效、隔離性強、可移植性高、資源佔用少等特性,能夠幫助企業快速實現存量業務容器化,同時提升超大規模下數據中心的物理資源利用率 3 月 31 日,PouchContainer 發佈 0.3.0 版本,撒花🎉 該版本在 PouchContainer deamon(如下稱 pouchd)功能完善、支持 Kubernetes CRI 協議和測試框架完善方面作了大量工做github
pouchd:微信
- 在 0.3.0 版本中,咱們進一步完善了對 Moby API 接口兼容工做。在以前的版本基礎上,新增了容器的 restart、top 和 resize 等功能;
- 鏡像管理方面也作了進一步的優化工做:如今已全面支持指定 image ID,digest ID 和鏡像名來檢索鏡像信息以及建立容器;
- pouchd 端添加 plugin 機制,插件機制容許在啓動/關閉 pouchd 或建立/刪除 container 以前,用戶能夠運行本身的定製化腳本,執行一些業務強相關的腳本。這樣既保證了 pouchd 服務業務鬆耦合的特性,又能知足業務的一些定製化操做需求;
- 添加 daemon/update 接口,支持修改 pouchd 標籤或 image proxy 信息,該功能能夠用於對 PouchContainer 宿主機作一些定製化的操做,好比經過給 pouchd 打不一樣的 tag 來劃分宿主機資源池等等;
- 對原有功能進一步完善,如支持建立容器時指定 oom 和 cgroup path 等配置參數。
存儲:網絡
- 支持在建立容器時指定 rootfs 的容量大小,這樣方便用戶根據本身業務的不一樣需求,來靈活設置 rootfs 的容量大小;
- 支持經過 bind mount 形式,將宿主機上的文件共享到容器內部;
- 修復了數據盤 volume 正在被容器使用的狀況下還能被刪除的 bug。
Kubernetes CRI:框架
- PouchContainer 原生支持 Kubernetes。在 0.3.0 版本中已經實現了 CRI 協議的絕大部分接口:Sanbox/Container 生命週期管理、鏡像管理、網絡 CNI 協議的支持以及完善 container stream 功能(exec/attach/portforward)等;
- 經過了 90% 以上的 cri-tools 測試用例:51/55;
- PouchContainer 目前計劃先全量支持 CRI v1alpha1 版本,以後再去兼容更高版本的 CRI 協議。因此,建議使用 Kubernetes 1.9.x 版原本試用 PouchContainer 的 CRI 功能。
測試:單元測試
- 添加了對 client 端代碼的 mock 測試,大大提高了代碼測試的覆蓋率;
- PouchContainer 早前版本中只包含了代碼的單元測試和 API 接口的迴歸測試,pouchd 端的測試一直是一個測試盲區,因此在 0.3.0 版本中,咱們也添加了對 pouchd 的測試框架,確保項目代碼被全面「呵護」;
- 做爲一個對代碼質量要求很高的項目,項目文檔的質量一樣須要嚴格把關,因此在新的版本里,咱們引入了 circle ci 測試,並專門添加了對項目文檔的測試。
文檔:測試
- 添加了對容器 diskquota 功能的介紹文檔,用戶能夠經過訪問 PouchContainer GitHub 官方地址來了解 PouchContainer 的最新功能介紹;
- 完善了 ci 測試指導文檔,指導用戶更加方便地在本身的環境裏測試 PouchContainer 的代碼。
其餘:優化
- 修復了因爲日誌依賴包 (logrus) 修改過包名致使常常在異構環境編譯失敗的問題。
PouchContainer 0.3.0 版本目前仍然是一個 pre-production 版本,其富容器、隔離等特性均有別於社區其餘解決方案。目前依靠自身的獨特功能特性,PouchContainer 已經在阿里巴巴內部支撐多個業務。插件
爲幫助行業完成存量業務容器化的任務,PouchContainer 將加快迭代速度。同時,PouchContainer 在此版本中已支持 Kubernetes,擁抱 CNCF 生態。rest
歡迎你們經過連接 github.com/alibaba/pou…(點擊閱讀原文)安裝下載,也期待廣大社區愛好者積極參與 PouchContainer 開源社區的共建。
更多消息關注微信公衆號:阿里系統軟件技術