Containerd 1.5 发布:重磅支持 docker-compose!
2021 年 5 月 4 日,Containerd 1.5 正式发布[1],该版本默认启用了 OCIcrypt
解密功能,并引入了对 NRI
、zstd
和 FreeBSD jails
的支持,同时还简化了对 Containerd 的贡献流程。下面就来看看具体更新了哪些功能吧。
默认 OCIcrypt 解密
Containerd 从 1.3 开始就支持从加密的镜像中运行容器,但没有作为默认启用的选项,直到 1.5 版本才默认启用,具体用法请参考文档[2]。
需要注意的是,必须安装二进制文件 ctd-decoder
才能解密 OCIcrypt 镜像,该二进制文件包含在 cri-containerd-cni-1.5.0-linux-amd64.tar.gz[3] 中,但不包含在 containerd-1.5.0-linux-amd64.tar.gz
中。另外,OCIcrypt
并不适用于 Docker,因为 Docker 目前并没有使用 Containerd 来管理镜像。
NRI: Node Resource Interface
NRI(Node Resource Interface)[4] 即节点资源接口,类似于 CRI
,但 NRI
可用于非网络资源,例如 GPU 调度限制和内存配额。具体用法可参考 NRI 示例代码[5]。
zstd 压缩算法
除了 gzip 之外,Containerd 现在还支持 zstd[6] 镜像压缩算法,压缩速度比 gzip
快好几倍,具体通过 github.com/klauspost/compress/zstd[7] 来实现。关于 zstd 的性能测试结果请参考zstd 官方文档[8]。
支持 FreeBSD
Containerd 从 1.5 版本开始实验性地支持 FreeBSD 操作系统,可以使用 FreeBSD jails[9] 运行一个兼容的 OCI
运行时,例如 runj[10]。同时还支持 ZFS
的快照管理,未来版本可能也会支持 unionfs[11]。
简化贡献流程
CRI 插件仓库[12] 现已合并到 Containerd 主仓库[13]中,对用户来说没有明显变化,只是简化了开发者对 Containerd 的贡献流程。
nerdctl
nerdctl[14] 是一个与 Docker 兼容的 CLI,例如:
$ nerdctl run -d --name nginx -p 8080:80 --restart=always nginx
但 nerdctl
的目标并不是单纯地复制 docker 的功能,它还实现了很多 docker 不具备的功能,例如延迟拉取镜像(lazy-pulling[15])、镜像加密(imgcrypt[16])等。
nerdctl 在上个月作为非核心子项目加入了 Containerd 组织,详情请参考终于可以像使用 Docker 一样丝滑地使用 Containerd 了!
现在 nerdctl 还推出了一个爆炸性功能:直接兼容 docker-compose 的语法!也就是说,可以直接通过 docker-compose.yaml 启动容器:
$ nerdctl compose -f docker-compose.yaml up
求 Docker 此时内心的阴影面积。。
本来 Docker 在 Kubernetes
社区的地位就在急剧下滑,现在 Containerd 易用性的空缺也被 nerdctl
填补上了,连 docker-compose 也能兼容了,如今 Docker 就更不受待见了。虽说廋死的骆驼比马大,但 Docker 的辉煌时代终究一去不复返了。
脚注
[1] Containerd 1.5 正式发布: https://github.com/containerd/containerd/releases/tag/v1.5.0
[2] 参考文档: https://github.com/containerd/containerd/blob/v1.5.0-rc.2/docs/cri/decryption.md
[3] cri-containerd-cni-1.5.0-linux-amd64.tar.gz: https://github.com/containerd/containerd/releases
[4] NRI(Node Resource Interface): https://github.com/containerd/nri
[5] NRI 示例代码: https://github.com/containerd/nri#sample-plugin
[6] zstd: https://github.com/containerd/containerd/pull/4809
[7] github.com/klauspost/compress/zstd: https://github.com/klauspost/compress/tree/master/zstd
[8] zstd 官方文档: https://github.com/klauspost/compress/blob/master/zstd/README.md
[9] FreeBSD jails: https://en.wikipedia.org/wiki/FreeBSD_jail
[10] runj: https://github.com/samuelkarp/runj
[11] unionfs: https://www.freebsd.org/cgi/man.cgi?query=unionfs&sektion=8&manpath=freebsd-release-ports
[12] CRI 插件仓库: https://github.com/containerd/cri
[13] Containerd 主仓库: https://github.com/containerd/cri
[14] nerdctl: https://github.com/containerd/nerdctl
[15] lazy-pulling: https://github.com/containerd/nerdctl/blob/master/docs/stargz.md
[16] imgcrypt: https://github.com/containerd/nerdctl/blob/master/docs/ocicrypt.md

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MySQL性能优化(三):深入理解索引的这点事
索引,对于良好的数据库性能非常关键。只要提及到数据库性能优化,都会首先想到“索引”,看看表中是否添加索引。尤其是当表中的数据量越来越大时,索引对性能的影响尤为突出。在数据量较小且负载较低时,没有索引或者不恰当索引对性能的影响可能还不明显,但当数据量逐渐增大时,性能则会急剧下降。 不过,索引却经常被忽略,有时候甚至被误解、误用,在实际使用中经常会遇到糟糕索引而导致的性能问题。本文就索引的概念、类型、优点等方面聊聊,一起深入理解索引的这点事,更有助于你清楚的理解索引,能够正确的使用它,便于利用它来进行数据库的优化。 一、什么是索引 索引(Index),是帮助MySQL高效获取数据的数据结构,是存储引擎用于快速找到记录的一种数据结构。 要理解MySQL中索引是如何工作的,最简单的例子就是去看看一本书的目录“索引”部分。如果想在一本书中找到某个章节,一般我们会先看书的目录“索引”,就会立即找到对应的页码。 在MySQL中,存储引擎也是用类似的方法使用索引,首先在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行。 查询是数据库中最常用的操作,我们都希望查询的速度尽可能快,因此数据库系统...
- 下一篇
Fluid 进入 CNCF Sandbox,加速大数据和 AI 应用拥抱云原生
2021 年 4 月 27 日,云原生计算基金会(CNCF)宣布通过全球 TOC 投票接纳 Fluid 成为 CNCF 官方沙箱项目。Fluid 是一个由南京大学、阿里云以及 Alluxio 开源社区联合发起并开源的云原生数据编排和加速系统。 Fluid 项目地址:https://github.com/fluid-cloudnative/fluid 项目介绍 云原生环境下,计算存储分离架构在提升系统弹性和灵活性的同时,给大数据 / AI 等数据密集型应用带来了计算性能和管理效率方面的挑战。现有云原生编排框架运行此类应用面临数据访问延时高、多数据源联合分析难、应用使用数据过程复杂等痛点。Fluid 正是为解决这些问题而生的。 Fluid 系统架构图 Fluid 运行在 Kubernetes 上,是一个可扩展的分布式数据编排和加速系统,其目标为构建云原生环境下数据密集型应用的高效支撑平台。该项目开源于 2020 年 9 月,短短半年多时间内发展迅速,吸引了众多领域专家和工程师的关注与贡献,并在包括微博、奇虎 360、中国电信等多家大型知名IT和互联网企业中使用。 核心功能 Fluid 在云...
相关文章
文章评论
共有0条评论来说两句吧...