乐趣区

关于互联网: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 的本地文件系统。

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 用户态文件系统过程:

反对 KataContainers 时,Nydus 作为 Virtio-fs daemon:

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

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/a…

求贤若渴:

对于蚂蚁团体可信原生技术部平安容器和存储团队

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

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

分割邮箱:liyuming.lym@antgroup.com

本周举荐浏览

祝贺 李志强 成为 Layotto committer!

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

HAVE FUN | SOFARegistry 源码解析

BabaSSL:反对半同态加密算法 EC-ElGamal

退出移动版