diff --git a/SUMMARY.md b/SUMMARY.md index df27aec682b1770b2b16d8c4d2e02a71154c4a1f..d347bf7a0dad49b4e70e528424b7739206a21ce8 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -8,6 +8,7 @@ * [面向云原生生态的操作系统发行版 LifseaOS](./cloud_native/lifseaos.md) * [跨云-边-端的只读文件系统 EROFS](./cloud_native/erofs.md) * [敏捷开发场景下的调度器热升级SDK](./cloud_native/plugsched.md) + * [容器镜像大规模分发技术Nydus](./cloud_native/nydus.md) * [一云多芯硬件生态](./multi_arch/README.md) * [Intel SPR平台支持](./multi_arch/intel_spr_support.md) * [龙蜥 Arm 生态支持](./multi_arch/arm_support.md) diff --git a/cloud_native/nydus.md b/cloud_native/nydus.md new file mode 100644 index 0000000000000000000000000000000000000000..7b68c61c7d67dc3bc64256e9a3b1de769d48428f --- /dev/null +++ b/cloud_native/nydus.md @@ -0,0 +1,26 @@ +# 容器镜像大规模分发技术Nydus +tags: 云原生场景, Anolis8 + +## 背景概述 + +在容器的生产实践中,当应用的镜像达到几个GB以上的时候,在节点上下载镜像通常会消耗大量的时间。Dragonfly通过引入P2P 网络有效提升了容器镜像大规模分发的效率。然而,用户还是必须等待镜像数据完整下载到本地才能创建自己的容器。为此,我们 为Dragonfly项目引入了一个容器镜像加速服务Nydus。Nydus能够极大缩短镜像下载时间,并提供端到端的镜像数据一致性校验, 让用户能够更安全快捷地管理容器应用。容器镜像加速服务Nydus的项目地址如下: +https://github.com/dragonflyoss/image-service +https://nydus.dev + +## 技术方案 + +Nydus项目优化了现有的OCI镜像标准格式,并以此设计了一个用户态的文件系统。通过这些优化,Nydus能够提供如下特性: - 容器镜像按需下载,用户不再需要下载完整镜像就能启动容器; +- 块级别的镜像数据去重,最大限度为用户节省存储资源; +- 镜像只有最终可用的数据,不需要保存和下载过期数据; +- 端到端的数据一致性校验,为用户提供更好的数据保护; +- 兼容OCI分发标准和artifacts标准,开箱即可用; +- 支持不同的镜像存储后端,镜像数据不只可以存放在镜像仓库,还可以放到NAS或类似S3的对象存储上; - 良好集成到Dragonfly。 + +架构上,Nydus主要提供了Nydus镜像格式以及解析Nydus格式容器镜像的文件系统(可选FUSE用户态文件系统或者Linux内核文件系统)。 + +![](../materials/imgs/cloud_native/nydus/nydus_arch.png) + +Nydus能够通过解析FUSE/virtiofs协议或Linux内核文件系统的方式来支持传统的runc容器或者Kata容器。容器仓库、OSS对象存 储、NAS以及Dragonfly的超级节点和peer节点都可以作为Nydus的镜像数据源。同时,Nydus还可以配置一个本地缓存,避免每 次启动都从远端数据源拉取数据。 + +## 应用案例 +阿里巴巴集团,蚂蚁集团通过部署Nydus满足了云原生系统对于弹性能力和容器镜像供应安全保障的要求。 \ No newline at end of file diff --git a/materials/imgs/cloud_native/nydus/nydus_arch.png b/materials/imgs/cloud_native/nydus/nydus_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..f455ec0aaba153671bcf08323e17aef946729cc7 Binary files /dev/null and b/materials/imgs/cloud_native/nydus/nydus_arch.png differ