PouchContainer 是阿里开源的一款轻量级、开源的富容器技术,拥有快速高效、隔离性强、可移植性高、资源占用少等特性,可以帮助企业快速实现存量业务容器化,同时提高超大规模下数据中心的物理资源利用率。
5 月 25 日,PouchContainer 发布 0.5.0 版本,该版本支持了 Kubernetes CRI v1apha2 协议,实现了插件机制,并且在阿里巴巴集团返迁过程中不断完善,稳定性大大提升,现已在生产环境稳定运行。
pouchd:
优化 PouchContainer update 接口:支持动态更新容器的 env,支持修改和删除容器的 env 或 label 值,支持更新容器的 diskquota;
update
重构 PouchContainer 镜像引擎:完善了镜像元信息存储,让镜像引擎架构变得更加清晰,也大大提升了镜像引擎在日常使用中的稳定性;
支持通过 sha256 digest id 来检索和操作镜像;
sha256 digest id
pouchd 支持了 pouch logs 逻辑,容器的日志输出都会被重定向到容器的 json 日志文件中,容器进程输出内容的落盘对日常定位容器问题非常有帮助;
pouch logs
json
重构了 pouchd 端容器元数据的数据结构,进一步清晰化了容器的数据结构;
实现了 pouch tag 工具,日常运维中给容器镜像打新的 tag 是一个需求特别高的功能,可能十分方便的转移容器镜像;
pouch tag
支持 pouchd 重启后托管宿主机上旧的 containerd 进程,支持 pouchd 优雅退出;
修复若干稳定性问题:修复容器 io 关闭失败导致容器状态不一致的问题,修复 containerd 进程退出可能偶发误杀正常运行的容器的问题等等;
创建容器时支持 --ulimit 参数,设置容器 ulimit 值;
--ulimit
ulimit
创建容器时支持 --pids-limit 参数,支持设置容器内启动进程的上限;
--pids-limit
删除容器时支持 --volume 参数,支持删除容器时,删除所有创建容器时创建的所有匿名 volume。
--volume
存储:
volume manager 支持 volume-driver-alias 参数:允许给存储插件设置别名;
volume-driver-alias
实现了 plugin 机制,这套插件机制可以完美兼容 Moby 的插件协议,让用户在使用 PouchContainer 时能方便的使用原来的存储插件;
plugin
实现了存储 remote 驱动机制,这样不仅能支持 local/tmpfs/ceph 等存储插件,也完全兼容原来所有 Moby 的存储插件,也能很好的支持阿里巴巴集团内部的 ultron 存储;
local/tmpfs/ceph
ultron
修复了高并发访问 volume 元数据存储时,由于加锁不当导致 pouchd 出现 panic 的问题。
网络:
支持了 network disconnect 接口:允许动态删除容器指定网卡;
network disconnect
支持了 network connect 接口:允许动态给容器添加网卡;
network connect
修复在执行 network disconnect 命令时,可能会删除容器所有网卡的问题;
修复重启 pouchd 时,可能会清理容器网卡的问题。
pouchd
Kubernetes CRI:
PouchContainer 现已支持 CRI v1alpha2 协议,现在用户可以在 Kubernetes 1.10 版本上使用 PouchContainer;
修复了若干由于容器 io 没有被正常处理导致 CRI 测试失败的问题;
在执行 execSync 操作时,添加超时机制。
execSync
文档:
文档质量保障提升:添加了 misspell 和 markdownlint 工具用于检测文档拼写错误;
misspell
markdownlint
添加代码编写规范文档:《 Code Style》;
添加介绍如何使用 PouchContainer 运行 Kata-Container 的文档:《Pouch with kata》;
添加介绍如何使用 aliyun 镜像仓库搭建 Kubernetes + PouchContainer 环境的文档:《Deploy Kubernetes With Pouch, Powered By Aliyun》。
测试:
修复了若干由于使用不稳定的 docker hub 镜像导致测试用例偶发失败的问题;
测试架构上进行了进一步优化,提升测试的稳定性;
测试中 go test 命令添加了 -race 参数,用于检测测试代码中的竞争问题。
go test
-race
开发团队表示,PouchContainer 0.5.0 版本将会是最后一个 pre-production 版本,在 PouchContainer 团队和广大的外部开发者的不断努力下,现在 PouchContainer 已经完全具备成为一个合格容器产品所有条件,但为了能更好的支持传统存量业务快速容器化,在接下来的几个月中,PouchContainer 将被继续打磨。届时,它将成为一款更加稳定成熟的容器商业化产品,敬请期待。
来源:阿里系统软件技术
评论删除后,数据将无法恢复
Pouch 发布 0.5.0 版本,支持 Kubernetes CRI v1apha2
PouchContainer 是阿里开源的一款轻量级、开源的富容器技术,拥有快速高效、隔离性强、可移植性高、资源占用少等特性,可以帮助企业快速实现存量业务容器化,同时提高超大规模下数据中心的物理资源利用率。
5 月 25 日,PouchContainer 发布 0.5.0 版本,该版本支持了 Kubernetes CRI v1apha2 协议,实现了插件机制,并且在阿里巴巴集团返迁过程中不断完善,稳定性大大提升,现已在生产环境稳定运行。
pouchd:
优化 PouchContainer
update
接口:支持动态更新容器的 env,支持修改和删除容器的 env 或 label 值,支持更新容器的 diskquota;重构 PouchContainer 镜像引擎:完善了镜像元信息存储,让镜像引擎架构变得更加清晰,也大大提升了镜像引擎在日常使用中的稳定性;
支持通过
sha256 digest id
来检索和操作镜像;pouchd 支持了
pouch logs
逻辑,容器的日志输出都会被重定向到容器的json
日志文件中,容器进程输出内容的落盘对日常定位容器问题非常有帮助;重构了 pouchd 端容器元数据的数据结构,进一步清晰化了容器的数据结构;
实现了
pouch tag
工具,日常运维中给容器镜像打新的 tag 是一个需求特别高的功能,可能十分方便的转移容器镜像;支持 pouchd 重启后托管宿主机上旧的 containerd 进程,支持 pouchd 优雅退出;
修复若干稳定性问题:修复容器 io 关闭失败导致容器状态不一致的问题,修复 containerd 进程退出可能偶发误杀正常运行的容器的问题等等;
创建容器时支持
--ulimit
参数,设置容器ulimit
值;创建容器时支持
--pids-limit
参数,支持设置容器内启动进程的上限;删除容器时支持
--volume
参数,支持删除容器时,删除所有创建容器时创建的所有匿名 volume。存储:
volume manager 支持
volume-driver-alias
参数:允许给存储插件设置别名;实现了
plugin
机制,这套插件机制可以完美兼容 Moby 的插件协议,让用户在使用 PouchContainer 时能方便的使用原来的存储插件;实现了存储 remote 驱动机制,这样不仅能支持
local/tmpfs/ceph
等存储插件,也完全兼容原来所有 Moby 的存储插件,也能很好的支持阿里巴巴集团内部的ultron
存储;修复了高并发访问 volume 元数据存储时,由于加锁不当导致 pouchd 出现 panic 的问题。
网络:
支持了
network disconnect
接口:允许动态删除容器指定网卡;支持了
network connect
接口:允许动态给容器添加网卡;修复在执行
network disconnect
命令时,可能会删除容器所有网卡的问题;修复重启
pouchd
时,可能会清理容器网卡的问题。Kubernetes CRI:
PouchContainer 现已支持 CRI v1alpha2 协议,现在用户可以在 Kubernetes 1.10 版本上使用 PouchContainer;
修复了若干由于容器 io 没有被正常处理导致 CRI 测试失败的问题;
在执行
execSync
操作时,添加超时机制。文档:
文档质量保障提升:添加了
misspell
和markdownlint
工具用于检测文档拼写错误;添加代码编写规范文档:《 Code Style》;
添加介绍如何使用 PouchContainer 运行 Kata-Container 的文档:《Pouch with kata》;
添加介绍如何使用 aliyun 镜像仓库搭建 Kubernetes + PouchContainer 环境的文档:《Deploy Kubernetes With Pouch, Powered By Aliyun》。
测试:
修复了若干由于使用不稳定的 docker hub 镜像导致测试用例偶发失败的问题;
测试架构上进行了进一步优化,提升测试的稳定性;
测试中
go test
命令添加了-race
参数,用于检测测试代码中的竞争问题。开发团队表示,PouchContainer 0.5.0 版本将会是最后一个 pre-production 版本,在 PouchContainer 团队和广大的外部开发者的不断努力下,现在 PouchContainer 已经完全具备成为一个合格容器产品所有条件,但为了能更好的支持传统存量业务快速容器化,在接下来的几个月中,PouchContainer 将被继续打磨。届时,它将成为一款更加稳定成熟的容器商业化产品,敬请期待。
来源:阿里系统软件技术