项目概况
Kata Containers 是 OpenInfra 基金会的重要项目,项目孕育的 Kata 容器作为安全容器的事实标准,以其成熟的云原生兼容性、出色的隔离能力和丰富的应用生态,被广泛使用于用户隔离、性能隔离等场景。
用户在使用 kata 容器,体验到其优越的隔离能力的同时,也需要承担由硬件虚拟化隔离技术带来的单实例开销资源大、单 POD16 启动时间长、单机并发能力弱等问题,在一定程度上受到成本较高、集群弹性性能不足的困扰。
龙蜥云原生 SIG 以阿里云安全容器沙箱 runD17 为基础,向 kata 社区贡献 kata 3.0 架构以及关键代码,通过架构升级和全栈优化,全面提升 kata 容器的启动效率,并大幅度降低资源开销,让用户在使用 kata时,享受到使用方式、成本开销和弹性性能与普通容器一致的体验。
项目挑战
Kata 2.x 版本 runtime 和 VMM18 位于不同进程:不同进程会带来诸多问题,比如进程间通信会消耗更多的资源,从而会导致相对较低的效率;其次用户需要自己对 VMM18 进行适配,VMM18 版本变化会导致 Kata runtime 适配出现问题。同时,进程的复杂性也会带来运维上的挑战,例如,在异常情况下进行资源回收时,任何进程的异常都必须被其他组件检测到,并激活相应的资源回收进程。如果有额外的过程存在,恢复变得更加困难。
Kata 2.x + QEMU19 解决方案整体启动时间、资源消耗都较高,对于容器场景高密高并发的场景资源消耗会成为显著的瓶颈,同时业界也缺少对于安全容器场景专门适配的虚拟化管理器,缺少相应虚拟化组件对安全容器场景虚拟化开销与虚拟化功能做权衡优化。
解决方案
龙蜥社区基于 RunD17 推出开源安全容器异步 Rust runtime,降低 runtime 侧整体资源消耗。
龙蜥社区基于 RunD17 推出 Kata 内置轻量级虚拟机 Dragonball,将多进程合一,带来开箱即用体验,同时专注于服务安全容器场景,引入镜像加速等一系列容器场景优化的同时,降低虚拟化层开销。
项目成果
龙蜥社区开源 RunD17 解决方案至安全容器 Kata Containers 社区并成功推动社区架构升级至 3.0,确立龙蜥社区 RunD17 为安全容器业界标准。
大幅降低安全容器整体资源消耗和启动耗时,通过内置轻量虚拟机 Dragonball,带来开箱即用的云原生安全容器体验。
龙蜥社区云原生 SIG 研发的安全容器架构 RunD17 在资源消耗和使用体验上都表现亮眼,在多个云原生业务场景上落地,且相关技术论文《RunD: A Lightweight Secure Container Runtime for Highdensity Deployment and High-concurrency Startup in Serverless Computing》中选系统领域顶级会议 ATC'22,在工业界和学术界都获得了广泛认可。