划重点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 开源社区的共建。
更多消息关注微信公众号:阿里系统软件技术