带你读《2022龙蜥社区全景白皮书》——5.6.3 容器镜像大规模分发技术Nydus

简介: 带你读《2022龙蜥社区全景白皮书》——5.6.3 容器镜像大规模分发技术Nydus

5.6.3 容器镜像大规模分发技术Nydus


背景概述


在容器的生产实践中,当应用的镜像达到几个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内核文件系统)。


image.png



Nydus能够通过解析FUSE/virtiofs协议或Linux内核文件系统的方式来支持传统的runc容器或者Kata容器。容器仓库、OSS对象存 储、NAS以及Dragonfly的超级节点和peer节点都可以作为Nydus的镜像数据源。同时,Nydus还可以配置一个本地缓存,避免每 次启动都从远端数据源拉取数据。


应用案例

阿里巴巴集团,蚂蚁集团通过部署Nydus满足了云原生系统对于弹性能力和容器镜像供应安全保障的要求。

相关实践学习
通过ACR快速部署网站应用
本次实验任务是在云上基于ECS部署Docker环境,制作网站镜像并上传至ACR镜像仓库,通过容器镜像运行网站应用,网站运行在Docker容器中、网站业务数据存储在Mariadb数据库中、网站文件数据存储在服务器ECS云盘中,通过公网地址进行访问。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
监控 Cloud Native Java
Quarkus 云原生Java框架技术详解与实践指南
本文档全面介绍 Quarkus 框架的核心概念、架构特性和实践应用。作为新一代的云原生 Java 框架,Quarkus 旨在为 OpenJDK HotSpot 和 GraalVM 量身定制,显著提升 Java 在容器化环境中的运行效率。本文将深入探讨其响应式编程模型、原生编译能力、扩展机制以及与微服务架构的深度集成,帮助开发者构建高效、轻量的云原生应用。
607 44
|
8月前
|
存储 容器
46.[HarmonyOS NEXT RelativeContainer案例三] 打造自适应容器:内容驱动的智能尺寸调整技术
在HarmonyOS NEXT的UI开发中,创建能够根据内容自动调整尺寸的容器是实现灵活布局的关键。RelativeContainer结合自适应尺寸设置,可以实现内容驱动的智能尺寸调整,使UI更加灵活且易于维护。本教程将详细讲解如何创建自适应尺寸的RelativeContainer,帮助你掌握这一实用技术。
260 5
|
4月前
|
Kubernetes Cloud Native 云计算
云计算与云原生技术探索
🌟蒋星熠Jaxonic,云原生探索者!以代码为舟,遨游技术星河。专注容器化、微服务、K8s与DevOps,践行GitOps理念,拥抱多云未来。用架构编织星辰,让创新照亮极客征途!
云计算与云原生技术探索
|
9月前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。
|
10月前
|
Cloud Native 关系型数据库 分布式数据库
|
4月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
430 2
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
10月前
|
存储 关系型数据库 分布式数据库
|
10月前
|
存储 关系型数据库 分布式数据库
|
8月前
|
资源调度 Kubernetes 流计算
Flink在B站的大规模云原生实践
本文基于哔哩哔哩资深开发工程师丁国涛在Flink Forward Asia 2024云原生专场的分享,围绕Flink On K8S的实践展开。内容涵盖五个部分:背景介绍、功能及稳定性优化、性能优化、运维优化和未来展望。文章详细分析了从YARN迁移到K8S的优势与挑战,包括资源池统一、环境一致性改进及隔离性提升,并针对镜像优化、Pod异常处理、启动速度优化等问题提出解决方案。此外,还探讨了多机房容灾、负载均衡及潮汐混部等未来发展方向,为Flink云原生化提供了全面的技术参考。
480 9
Flink在B站的大规模云原生实践