Nydus 镜像加速插件迁入 Containerd 旗下

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Nydus 镜像加速插件迁入 Containerd 旗下

文|葛长伟(花名:川朗 )

蚂蚁集团技术专家

负责容器镜像加速项目 Nydus 的开发和维护,专注于容器镜像存储、持久存储和文件系统领域。

本文 1344 字 阅读 4 分钟

前言

今年 1 月 ,Containerd 社区通过投票接收 Nydus-snapshotter 成为 Containerd 社区的子项目。这是继 ttrpc-rust 之后,蚂蚁容器团队再次向 Containerd 捐赠子项目。

此举将方便 Nydus 和 Containerd 的开发协同,减少项目迭代过程中可能出现的不兼容问题,也让用户可以更容易地使用 Nydus 镜像加速服务。

目前 Nydus 已经将 Nydus-snapshotter 的代码迁移到了 Containerd 组织下的新仓库[1]。

Nydus 简介

Nydus 是蚂蚁集团和阿里云共同开源的容器镜像加速项目,属于 CNCF Dragonfly 项目,是其中的镜像服务部分。

Nydus 是在最新的 OCI Image-Spec 基础之上设计的容器镜像加速服务,重新设计了镜像格式和底层文件系统,从而加速容器启动速度,提高大规模集群中的容器启动成功率。

Nydus 设计了一个为镜像优化的文件系统—Rafs。

Nydus 镜像可以推送和保存在标准的容器镜像中心,Nydus 镜像格式完全兼容 OCI Image Spec 和 Distribution Spec。成功转换或者创建镜像后,Nydus 镜像会生成一个元数据文件 Bootstrap、若干个数据文件 blob、manifest.json、config.json。

目前可以通过 Nydusify 、Acceld 或者 Buildkit 创建 Nydus 加速镜像。

其中,Acceld[2] 是 Nydus 和 eStargz 的开发者正在合作开发的 Harbor 开源企业级镜像中心的一个子项目,它提供了一个通用的加速镜像转换服务和框架。基于 Acceld,Nydus 和 eStargz 可以方便地从 Harbor 触发加速镜像转换。

与此同时,Nydus 也在开发 Buildkit 相关的支持,在未来也可以直接通过 Buildkit 从 Dockerfile 直接创建加速镜像。

Nydus-snapshotter 是 Containerd 的 Remote Snapshotter 插件,它是一个独立于 Containerd 的进程。

当集成 Nydus-snapshotter 到 Containerd 后,Nydus-napshotter 在容器镜像准备阶段,只会将 Nydus 镜像的元数据部分 Bootstrap 从镜像中心下载下来,并且创建了一个新的进程 Nydusd。Nydusd 是处理文件系统操作的用户态进程。通过配置,Nydusd 可以作为基于 Linux FUSE 的用户态文件系统 Virtio-fs Vhost-user Backend,甚至可以是 Linux Fscache 的用户态进程。

Nydusd 负责从镜像中心或者对象存储下载文件数据以响应读文件的请求,并可以将文件数据块缓存在 Host 的本地文件系统。

weekly.jpg

Nydus 特性

Nydus 有如下重要的特性:

1、镜像层间块级数据去重,可以减少镜像中心的存储成本,降低数据传输的带宽消耗。

2、Whiteout 文件不会再被打包进 Nydus 镜像。

3、端到端的数据完整性校验。

4、作为 CNCF 孵化项目 Dragonfly 的子项目,Nydus 可以接入 P2P 分发系统,以此降低对镜像中心的压力。

5、支持数据和元数据分离存储。可以将数据保存在 NAS、阿里云 OSS 或者 AWS S3。

6、支持文件访问行为记录,这样就可以审计和分析容器内应用的访问行为。增强安全能力、优化镜像数据排布。

除了以上的关键特性,Nydus 可以灵活地配置成 Linux FUSE 用户态文件系统、基于轻量虚拟化技术容器的 Virtio-fs daemon,或者 Linux 内核磁盘文件系统 EROFS 的用户态 on-demand 数据下载服务:

1、轻量化地集成到 vm-based 容器运行时。现在 KataContainers 正在考虑原生地支持 Nydus 作为容器镜像加速方案。

2、Nydus 和 EROFS 紧密合作,期望可以直接使用 EROFS 作为容器镜像的文件系统。相关修改的第一部分已经合并入 Linux Kernel v5.16。

Nydus 部署形态

支持 Runc 时,Nydus 作为 FUSE 用户态文件系统进程:

weekly.jpg

支持 KataContainers 时,Nydus 作为 Virtio-fs daemon:

weekly.jpg

目前 EROFS 正在尝试联合 Fscache 一起,以内核文件系统 EROFS 直接作为容器 Rootfs:

weekly.jpg

Nydus 将与 Containerd 社区紧密合作,致力于提供更优秀的容器镜像加速方案,提高镜像的存储和分发效率,提供安全可靠的容器镜像服务。

「参 考」

[1] nydus-snapshotter repository:GitHub - containerd/nydus-snapshotter: A containerd snapshotter with capability of on-demand read.

[2] acceld repository:https://github.com/goharbor/acceleration-service

求贤若渴:

关于蚂蚁集团可信原生技术部安全容器和存储团队

在蚂蚁集团内部主要负责公司内部容器运行时和云原生存储技术,是公司数据链路的守护者,运行时环境的看门人。我们团队也是 Kata Containers 的创立者,镜像加速服务 Nydus 的发起者,分布式事务服务 Seata 的维护者,也维护着公司内数据访问组件 ZDal/ZCache/XTS 等产品。

我们是开源精神的信徒,也是实现开源软件和公司业务双赢的践行者。我们是一个关注业务、关注业界前沿、关注基础设施技术,更关心成员成长的团队。目前我们正在招收 2023 届实习生,有兴趣的可以参考蚂蚁集团2023届实习生招聘。

联系邮箱:liyuming.lym@antgroup.com

本周推荐阅读

恭喜 李志强 成为 Layotto committer!

社区文章|MOSN 路由框架详解

HAVE FUN | SOFARegistry 源码解析

BabaSSL:支持半同态加密算法 EC-ElGamal

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
网络协议 数据安全/隐私保护 Docker
Docker 镜像库国内加速的几种方法
Docker 镜像库国内加速的几种方法
|
缓存 Linux pouch
【阿里云镜像】配置Pouch镜像
【阿里云镜像】配置Pouch镜像
320 0
【阿里云镜像】配置Pouch镜像
|
存储 Dragonfly 缓存
Nydus:开源的下一代容器镜像加速服务
让更多的容器用户能够体验到容器快速启动和安全加载方面的能力。
6426 0
Nydus:开源的下一代容器镜像加速服务
|
4月前
|
Docker 容器
Docker【部署 01】在线安装+离线安装+问题处理(设置阿里云镜像加速器)不断完善ing
Docker【部署 01】在线安装+离线安装+问题处理(设置阿里云镜像加速器)不断完善ing
426 0
|
11月前
|
存储 SQL 分布式计算
Docker容器化急速部署ClickHouse
Docker容器化急速部署ClickHouse
|
12月前
|
存储 Dragonfly 弹性计算
蚂蚁安全科技 Nydus 镜像加速实践
ZOLOZ[1]是蚂蚁集团旗下的全球安全风控平台,通过业内领先的生物识别、大数据分析和人工智能技术,为用户和机构提供安全又便捷的安全风控解决方案。ZOLOZ 已为中国、印尼、马来西亚、菲律宾等 14 个国家和地区的 70 余家合作伙伴提供数字化转型过程中的安全风控技术支持。目前,已经覆盖金融、保险、证券、信贷、电信、公众服务等领域,累计服务用户超 12 亿。
|
Dragonfly Cloud Native 应用服务中间件
如何在 Anolis 8 上构建基于 Nydus 和 Dragonfly 的镜像加速解决方案
Nydus+Dragonfly 组合减少容器启动过程中镜像的拉取时间,提升集群间的镜像分发效率。
如何在 Anolis 8 上构建基于 Nydus 和 Dragonfly 的镜像加速解决方案
|
存储 Dragonfly JSON
Nydus 在约苗平台的容器镜像加速实践
本文是来自向申同学的分享,介绍了其在 K8s 生产环境集群部署 Nydus 的相关实践。
Nydus 在约苗平台的容器镜像加速实践
|
Dragonfly 缓存 Kubernetes
Dragonfly 和 Nydus Mirror 模式集成实践
自 17 年开源以来,Dragonfly 被许多大规模互联网公司选用并投入生产使用,并在 18 年 10 月正式进入 CNCF,成为中国第三个进入 CNCF 沙箱级别的项目。2020 年 4 月,CNCF 技术监督委员会 *(TOC)* 投票决定接受 Dragonfly 作为孵化级别的托管项目。Dragonfly 多年生产实践经验打磨的下一代产品,它汲取了上一代 Dragonfly1.x[1] 的优点并针对已知问题做了大量的优化。
Dragonfly 和 Nydus Mirror 模式集成实践
|
Kubernetes 安全 Linux
【阿里云镜像】使用阿里巴巴开源镜像站镜像——Kubernetes 镜像
【阿里云镜像】使用阿里巴巴开源镜像站镜像——Kubernetes 镜像
508 0
【阿里云镜像】使用阿里巴巴开源镜像站镜像——Kubernetes 镜像