KubeVela

关注
义项:云原生应用交付平台
KubeVela

KubeVela 是一个开源的云原生应用交付与管理平台,基于 Kubernetes 控制平面构建,其应用交付抽象由开放应用模型(Open Application Model,OAM)提供支持[1]。它以应用为中心,通过声明式的交付工作流把应用组件与云资源编排、部署到多集群和混合云环境中,使交付过程不依赖具体运行时基础设施[2]。项目于 2020 年 11 月对外开源,2021 年 6 月成为云原生计算基金会(CNCF)沙箱项目,并于 2023 年晋升为 CNCF 孵化项目[1]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

KubeVela 是一个应用交付与管理控制平面,它把应用组件、云资源和交付流程统一编排到多个集群与混合环境中[2]。它的核心 API 称为 Application,是一种以应用为中心的声明式对象,可以方便地与上游的持续集成(CI)流水线和 GitOps 工具集成[2]。

KubeVela 建立在 Kubernetes 之上,其应用交付抽象由 开放应用模型(Open Application Model,OAM)提供支持[1]。它既被用作企业内部 PaaS 平台的引擎,也被用作持续交付管线的下游环节[1]。

在实现上,KubeVela 依赖一个专用的 Kubernetes 集群作为控制平面,以保证大规模应用管理过程具备确定性、收敛性和自动化能力[2]。运行时基础设施则用于承载真正运行的应用,KubeVela 本身与运行时基础设施无关[2]。

原理

KubeVela 的应用模型把一次完整的应用部署拆成几类要素:组件(Component)描述待交付的制品或云服务,运维特征(Trait)描述绑定到组件上的运维能力,应用策略(Policy)描述整个应用层面的规则,交付工作流(Workflow)则把部署过程建模为有向无环图[3]。这四类要素背后的模板都由平台构建者维护,并可随时扩展[3]。

KubeVela 的核心控制器负责处理 API 资源、编排工作流、存储修订版本、解析并执行 CUE 代码以及回收资源等任务[2]。集群网关控制器以 Kubernetes 聚合 API 服务器的方式工作,复用原生的认证与鉴权模块,为受管集群提供统一的多集群访问入口[2]。

KubeVela 提供了一种被称为定义机制(Definition Mechanism)的可编程方式来实现其部署模型,因此平台团队可以用 CUE 语言自行设计面向开发者的抽象,而不必改动 KubeVela 本身[2]。工作流引擎把基于 CUE 的步骤翻译并执行,它既可以作为独立引擎运行,也可以运行在 KubeVela 应用内部[1]。

在具体流程上,开发者用符合 OAM 的文件描述应用,控制器解析该描述并生成 Kubernetes 原生的部署规格,随后把规格应用到集群,同时把 OAM 文件中定义的运维特征一并集成,最后提供可观测性与管理能力[4]。

发展历程

KubeVela 的前身是 oam-kubernetes-runtime 项目,由来自 8 家以上组织的开发者共同发起,其中包括阿里云、微软和 Upbound[1]。其模型层源自阿里云与微软在 2019 年联合发布的开放应用模型[5]。

美国西部时间 2020 年 11 月 18 日,在 KubeCon 北美峰会 2020 上,CNCF 应用交付领域小组与 OAM 社区,以及来自阿里云、微软云的维护者共同宣布 KubeVela 开源项目正式发布。项目公开后第四天登上 Go 语言开源趋势榜首位[6]。

2021 年 4 月,KubeVela 发布 v1.0 版本,对外提供稳定的 API[1]。2021 年 6 月 22 日,在 CNCF 技术监督委员会的例会上,OAM 与 KubeVela 整体成为 CNCF 官方沙箱项目[7]。

2022 年 11 月,KubeVela 发布 v1.6,从应用交付扩展到应用管理,加入了资源状态可视化、平台能力插件化和独立流水线等能力[5]。2023 年,CNCF 技术监督委员会投票接受 KubeVela 成为孵化项目[1]。

2025 年 KubeVela 共发布 7 个版本,从 v1.10.0 到 v1.10.6,当年代码提交 124 次,共有 33 位贡献者,GitHub 星标数超过 7600[8]。其中 v1.10.3 加入原生 StatefulSet 支持,v1.10.4 使工作流能够依据组件依赖关系动态添加步骤依赖[8]。

应用

KubeVela 支持在 GitOps 模式下描述过程式的应用交付,而不只是简单的声明终态[9]。它内置了金丝雀发布、蓝绿发布等交付策略,以及面向混合云和多云的放置规则与集群过滤规则[9]。

在云服务方面,KubeVela 可以统一进行云服务的声明、部署和服务绑定[9]。其 Terraform 插件允许用户通过 Kubernetes 自定义资源来管理云资源[2]。

KubeVela 的插件目录包含 50 多个社区插件,用于集成 ArgoCD、FluxCD、Backstage、OpenKruise、Dapr、Crossplane、Terraform 等工具[2]。其中的 VelaUX 插件是 KubeVela 的网页界面,面向不熟悉 Kubernetes 的用户提供开箱即用的体验[2]。

公开的使用方包括阿里云,其以 KubeVela 为核心在混合环境中交付和管理应用;字节跳动将其与 Crossplane 结合以提供游戏 PaaS 能力;招商银行用它构建混合云应用平台,统一构建、交付和运行的全过程[1]。2025 年 KubeVela 在 KubeCon 北美峰会上介绍了面向平台工程的分享主题[8]。

局限

KubeVela 的公开 API 参数不会投影为 Kubernetes 自定义资源定义(CRD),因此开发者无法通过 kubectl explain 之类的原生方式直接读取参数与默认值[10]。应用对象中的 properties 字段带有 x-kubernetes-preserve-unknown-fields 标记,Kubernetes API 服务器不检查其内容,参数是否合法只有 KubeVela 自身的引擎知晓[10]。

由于上述设计,当 KubeVela 引擎停止运行时,验证规则也随之失效:admission webhook 的 failurePolicy 若设为 Fail 则应用会被拒绝,若设为 Ignore 则未经验证的应用仍可通过[10]。相比之下,由 CRD 承载的抽象可以让 API 服务器继续承担校验职责[10]。

KubeVela 的能力主要建立在 CUE 定义之上,而 CUE 语言本身学习曲线较陡,这部分成本由平台团队承担[11]。同时,抽象层会带来额外的间接性,当底层组件出现问题时排查路径被拉长[11]。

作为应用交付抽象,KubeVela 已进入生产可用阶段,但在社区采用度上仍属于细分工具。CNCF 在 2026 年初针对 400 多名开发者的技术雷达调查中,把 Helm、Backstage 和 Argo CD 列入推荐使用类别,KubeVela 未被提及[11]。2025 年其贡献者数量为 33 人,星标增长趋于平缓[11]。

参见

  • Kubernetes —— KubeVela 以它作为控制平面的实现基础,依赖其控制循环机制。

  • 开放应用模型 —— KubeVela 的应用交付抽象由该模型提供支持,二者同期成为 CNCF 项目。

  • 云原生计算基金会 —— KubeVela 于 2021 年成为其沙箱项目,2023 年晋升为孵化项目。

  • GitOps —— KubeVela 可以以 GitOps 方式使用,其应用对象可由 Git 仓库驱动。

  • Helm —— KubeVela 能够部署 Helm 图表,并把它作为组件的一种封装格式。

  • 持续交付 —— KubeVela 定位为 CI 流程下游的 CD 控制平面,接管制品部署环节。

参考资料

  1. cncfstack.com 上的网页 [引用日期2026-10-14]
  2. Architecture | KubeVela [引用日期2026-10-14]
  3. CNCF Application Definition之KubeVela [引用日期2026-10-14]
  4. pub_geral [引用日期2026-10-14]
  5. KubeVela 再升级:交付管理一体化的云原生应用平台! | KubeVela [引用日期2026-10-14]
  6. KubeVela:标准化的云原生平台构建引擎 [引用日期2026-10-14]
  7. OAM 与 KubeVela 项目整体捐赠进入 CNCF,让云端应用交付更加简单 [引用日期2026-10-14]
  8. cncfstack.com 上的网页 [引用日期2026-10-14]
  9. 概览 | KubeVela [引用日期2026-10-14]
  10. thinkit.co.jp 上的网页 [引用日期2026-10-14]
  11. lo0.es 上的网页 [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T20:35:21Z

历史版本

本条目引用的词条
Kubernetes 开放应用模型 云原生计算基金会 GitOps Helm 持续交付