华为开源基于 Rust 的容器运行时 Kuasar

华为开源Kuasar容器运行时

在KubeCon + CloudNativeCon EU 2023大会上,华为宣布开源了基于Rust的容器运行时Kuasar。Kuasar支持多种类型的沙箱,包括微虚拟机(microVMs)、Linux容器、应用内核(app kernels)和WebAssembly(Wasm)运行时。

Kubernetes与云原生应用的普及

KubeCon EU 2023吸引了超过50%的首次参会者,这表明Kubernetes及其支持的云原生应用范式正在跨越鸿沟,进入主流IT组织。随着Kubernetes的普及,开发者越来越多地将云原生架构应用于传统数据中心之外,如边缘数据中心、数据流应用、区块链、自动驾驶汽车甚至物联网设备。

多样化的云原生应用需求

这些新的云原生应用需要处理多样化的工作负载,单一的Linux容器方法已不再适用。例如,一些应用需要虚拟机级别的安全性和隔离性,而另一些则需要运行轻量级隔离沙箱,如WebAssembly(Wasm)。

现有解决方案的局限性

过去,已有许多努力尝试让虚拟机和Wasm工作负载与Linux容器在同一Kubernetes集群中并行运行。例如,KubeVirt项目可以同时管理虚拟机和容器,crun项目在OCI级别支持Linux容器和Wasm运行时,而containerd项目通过runwasi支持Wasm运行时(如WasmEdge)和Linux容器并行运行。然而,这些项目使用Linux容器框架来支持其他沙箱,导致在使用虚拟机或Wasm沙箱时存在许多低效和意外行为。

Kuasar的设计与优势

Kuasar从底层设计支持多种类型的沙箱和容器。基于containerd的Sandbox API,Kuasar引入了统一的沙箱支持和管理方法。Sandbox API是多个容器资源管理的低级目标,独立实现和编排,没有任何Go依赖。这使得Kuasar可以用Rust实现,从而在基础设施层面提供额外的安全性和性能优势。

与另一个安全的容器运行时Kata相比,Kuasar的启动时间缩短了一半,并且消耗的内存更少。这些性能提升得益于:

  • 使用Rust编程语言。
  • 重新设计以移除所有暂停容器。
  • 重新设计以用单一的常驻sandboxer进程替换shim进程。

Kuasar的支持与集成

作为一个统一的容器运行时,Kuasar已经支持微虚拟机沙箱(如Cloud Hypervisor、StratoVirt和QEMU)、应用内核沙箱(如Quark)和Wasm沙箱(如WasmEdge)。Kuasar可以无缝集成到高级CRI容器管理工具中,如containerd、cri-o、docker和iSulad。

开源与社区支持

Kuasar由多个商业和开源组织联合开发,包括华为云、中国农业银行、WasmEdge(CNCF下的项目)和openEuler社区。Kuasar是一个Apache 2.0下的开源项目,源代码可在GitHub上获取。如果你对容器运行时感兴趣,可以查看并为其做出贡献。

未来展望

CNCF董事会成员Bill Ren在KubeCon EU上分享了他对Kuasar的愿景和期望,认为开源的Kuasar将为开发者提供更多选择和支持,为用户提供更高效、完整和灵活的云原生容器解决方案。

阅读 101
0 条评论