镜像对容器部署的挑战
在容器的生产实践中,偏小的容器镜像能够很快地部署启动。当应用的镜像达到几个 GB 以上的时候,在节点上下载镜像通常会消耗大量的时间。Dragonfly 通过引入 P2P 网络有效提升了容器镜像大规模分发的效率。然而,用户还是必须等待镜像数据完整下载到本地,然后才能创建自己的容器。我们希望进一步缩减镜像下载的时间,让用户能够更快地部署容器应用。同时,如何更好地保护用户数据,也是容器行业近年来的重要关注点。
为此,我们为 Dragonfly 项目引入了一个容器镜像加速服务 Nydus。Nydus 能够极大缩短镜像下载时间,并提供端到端的镜像数据一致性校验,从而让用户能够更安全快捷地管理容器应用。Nydus 由阿里云和蚂蚁集团的工程师合作开发,并大规模部署在内部的生产环境中。作为云原生生态的一部分, Nydus 在生产环境的优秀表现,让我们有信心现在将项目开源,让更多的容器用户能够体验到容器快速启动和安全加载方面的能力。
容器镜像加速服务 Nydus 地址:https://github.com/dragonflyoss/image-service
Nydus: Dragonfly 的容器镜像服务
Nydus 项目优化了现有的 OCI 镜像标准格式,并以此设计了一个用户态的文件系统。通过这些优化,Nydus 能够提供这些特性:
-
容器镜像按需下载,用户不再需要下载完整镜像就能启动容器
-
块级别的镜像数据去重,最大限度为用户节省存储资源
-
镜像只有最终可用的数据,不需要保存和下载过期数据
-
端到端的数据一致性校验,为用户提供更好的数据保护