Kuasar 最前沿:KubeCon China 2024 精彩回顾
8 月 21 日-23 日,由云原生计算基金会(CNCF)和 Linux 基金会联合主办的 KubeCon + CloudNativeCon + Open Source Summit + Al_dev China 2024 大会在中国香港盛大召开。会上,多位 Kuasar 社区 Maintainer 分享了关于云原生容器运行时与大模型等领域前沿技术的案例实践与经验思考。
KubeCon China 2024 主题演讲
Kuasar[1]于 2023 年 4 月在 KubeCon Europe 上由华为云联合多家企业和社区发起,12 月正式成为 CNCF 首个多沙箱容器运行时项目。Kuasar 基于 Rust 语言实现,提供基于 MicroVM/App Kernel/WebAssembly / runC 类型的沙箱容器,融入了各企业和社区在容器运行时领域的前沿探索、技术积累和生产实践,开源至今受到业界的广泛关注和支持,已收获 1200 多个 GitHub Star 和 85 个 Fork,数十位来自外部企业、高校的开源爱好者参与开发贡献和积极落地应用。
▍使用 Kuasar 和 WasmEdge 在 Kubernetes 上部署大语言模型
Kuasar 社区 Maintainer Burning Zhang(华为云),携手 WasmEdge 社区创始成员 Vivian Hu(Second State)带来了主论坛演讲《使用 Kuasar 和 WasmEdge 在 Kubernetes 上部署大语言模型》。
《使用 Kuasar 和 WasmEdge 在 Kubernetes 上部署大语言模型》
大语言模型(LLM)是强大的人工智能工具,能够理解并生成自然语言。然而,传统运行 LLM 的方法面临着诸多挑战,包括复杂的软件包安装、GPU 设备兼容性问题、不灵活的扩展性、有限的资源监控和统计,以及存在安全漏洞。云原生人工智能(CLOUD NATIVE ARTIFICIAL INTELLIGENCE)白皮书[2]指出:
“WASM is a platform-independent, efficient CN approach to inference.”
“WASM 是一种高效、平台无关的云原生推理方法。”
云原生人工智能(CLOUD NATIVE ARTIFICIAL INTELLIGENCE)白皮书
WasmEdge 提供了一种基于 WebAssembly 运行时的解决方案,使得开发快速、灵活、资源高效且安全的 LLM 应用程序成为可能。Kuasar 作为容器运行时,无缝集成了 WebAssembly 运行时,使应用程序能够在 Kubernetes 集群上顺利运行。
在 Kubernetes 中集成 LLM
借助 Kuasar 和 WasmEdge 在 Kubernetes 集群中运行大模型负载的实践,成功解决了大模型应用开发和部署的两个关键痛点问题。
首先,通过 WebAssembly 技术,解决了传统技术在跨平台兼容性和复杂依赖性方面的挑战。开发者不再需要为不同 CPU 架构之间的编译与运行问题头疼,也无需为不同 GPU 驱动版本的兼容性以及 Python/PyTorch 复杂的依赖包问题而烦恼。WebAssembly 提供了一个统一的运行环境,使得跨平台的应用开发和部署变得更加简洁和高效。
另一方面,Kubernetes 集群本身为 LLM 负载程序提供了强大的容器编排能力,极大地简化了大模型的开发和部署过程。
打包与部署:通过将大模型打包成容器镜像,能够轻松实现应用在集群任意节点上的批量部署,显著提高了部署效率。
资源管理:Kubernetes 提供了精细的资源申请和管理机制,可以为每个应用合理规划异构资源的申请和限制,确保在划定的 QoS 范围内进行高效调度。
弹性伸缩:Kubernetes 可以快速实现弹性伸缩,既能保证服务质量,又能最大化资源利用率。
可观测性:借助 Kubernetes 的可观测性能力,能够更好地监控负载,收集性能数据,并记录日志,为优化和故障排除提供数据支持。
服务发现与负载均衡:Kubernetes 提供了服务发现和负载均衡功能,使得应用程序间的交互和联网更加顺畅。
灰度发布:支持灰度发布,使大模型的版本迭代和更新过程更加平滑,降低了新版本上线的风险。
通过这些能力,Kubernetes 不仅简化了大模型应用的部署和管理,还大幅提升了其运行效率和稳定性,加速云原生技术与 AI 生态的深度融合与发展。
▍基于 Containerd 的 Sandbox API 构建容器运行时
华为云云原生团队,Kuasar 社区 Maintainer Abel Feng 和来自 DaoCloud 的 Containerd Committer 蔡威共同分享了《如何基于 Containerd 的 Sandbox API 构建容器运行时》。
《如何基于 Containerd 的 Sandbox API 构建容器运行时》
随着不同类型的隔离技术(如沙箱)的引入,容器现在更多地是一组 API 规范,而不是单一技术。目前 Containerd 社区已经社区围绕 Sandbox 概念衍生出一套新的数据结构和管理接口 Sandbox API, 以便轻松集成不同类型的沙箱技术,使其成为容器运行时。
Containerd 中的 Sandbox 和 Container
基于 Sandbox API 接口实现,Kuasar 结合了华为云多年生产业务实践以及对沙箱技术发展的思考,在保留传统容器运行时功能的基础上,通过全面 Rust 化以及优化管理模型和框架等手段,进一步降低管理开销、简化调用链路,灵活扩展对业界主流沙箱技术的支持,实现云原生业务场景全覆盖。此外,通过支持多安全沙箱共节点部署,Kuasar 可以充分利用节点资源、降本增效,为用户提供更安全高效的沙箱场景解决方案。
Kuasar 全景图
南向沙箱方面,Kuasar 已支持基于轻量级虚拟化技术的安全容器沙箱(Cloud Hypervisor、Qemu、StratoVirt),基于新兴的 WebAssembly 沙箱(WasmEdge、Wasmtime),基于进程级虚拟化的 App Kernel 沙箱(Quark)以及基于内核的原生普通容器沙箱(runC);北向引擎方面,Kuasar 已与 Containerd 联合构建最新的沙箱接口标准,并共同推动该标准在 Containerd v2.0 版本的完整实现。此外,轻量级容器引擎 iSulad 项目也已经完成与 Kuasar 项目的深度集成,支持在 openEuler 23.09 创新版本上一键部署。
Kuasar 各 sandbox 架构图
应用场景方面,Kuasar 在轻量级安全容器、公有云远程沙箱以及基于 WebAssembly 的 LLM 推理场景下展现了其巨大的架构优势。通过 Kuasar,用户能够在轻量级虚拟机中实现高效、安全的资源隔离与管理,甚至可以将远程的 IaaS 的虚拟机作为沙箱进行灵活管理。此外,在运行 LLM 推理任务时,Kuasar 的架构能够充分利用 WebAssembly 技术,实现高效的资源利用和跨平台兼容性,为 AI 应用提供了基础架构支持。
目前,Kuasar 社区已经发布 v1.0.0 版本[3],这是该项目的一个重要里程碑。此次发布的版本标志着 Kuasar 的 Cloud Hypervisor 沙箱容器已经达到了稳定和成熟的阶段,可为开发者和企业用户提供了更为安全的云原生容器化部署,以提升容器的安全性和隔离性。用户可通过小规模测试,验证其在实际场景中的表现。
▍总 结
在本届 KubeCon 大会上,Kuasar 社区联合 WasmEdge 社区分享了对大模型应用在云原生场景的部署,加速 AI 在云原生领域的落地,和 Containerd 社区展示了应用最新的 Sandbox API 构建多沙箱容器运行时的可能,以及 Kuasar 社区在这方面的应用案例和探索,旨在帮助开发者和企业用户更好地容器化上云。大会期间带来的新版本 v1.0.0 性能更加成熟,欢迎大家体验。
展望未来,Kuasar 将继续致力于云原生多沙箱容器领域的深入研发,深入挖掘和满足更多用户场景的需求,不断优化和扩展技术栈,为用户提供更加全面、成熟和高效的解决方案。
相关链接:
[1]Kuasar 多沙箱容器运行时: https://github.com/kuasar-io/kuasar
[2]云原生人工智能白皮书: https://www.cncf.io/wp-content/uploads/2024/03/cloud_native_ai24_031424a-2.pdf
[3]Kuasar v1.0.0 版本: https://github.com/kuasar-io/kuasar/releases/tag/v1.0.0
评论