kubevela.github.io/i18n/zh/docusaurus-plugin-content-docs/version-v1.1/core-concepts/architecture.md

2.2 KiB
Raw Blame History

title
系统架构

KubeVela 在默认安装模式下,是一个只包含“控制平面”的架构,通过插件机制与各种运行时系统进行紧密配合。其中 KubeVela 核心控制器工作在一个单独的控制面 Kubernetes 集群。 如下图所示,自上而下看,用户只与 KubeVela 所在的控制面 Kubernetes 集群发生交互。

kubevela-arch

API 层

KubeVela API 是声明式的,并以应用程序为中心,用于构建应用交付平台和解决方案。同时,由于它基于原生的 Kubernetes CRD 构建,所以使用起来非常方便。

  • 对于大多数不用关心底层细节的用户来说,你只需要:
    • 查看 KubeVela 所提供的开箱即用的组件、运维特征、应用策略和工作流
    • 通过 YAML 文件来描述一个应用部署计划
  • 对于少数管理员来说:
    • 内置新的组件、运维特征、应用策略和自定义工作流,提供给你的用户
    • 通常需要使用 YAML 文件和 CUE 语言来完成上述操作

控制平面层

控制平面层是 KubeVela 的系统核心。它既能帮你按需组装内置能力,或者通过注册各种能力插件满足交付应用的需要,同时在交付后全自动处理 API 请求并管理全局状态。

主要包含如下三个部分:

  • 核心控制器 为整个系统提供核心控制逻辑,完成诸如编排应用和工作流、修订版本快照、垃圾回收等等基础逻辑
  • 新增内置能力 由 X-Definitions 创建,注册应用交付所需要的内置能力。基于这个灵活性,我们可以自由地去集成开源生态的能力,按需自定义
  • 插件能力中心 Addon 让你可以调用生态下常见的能力,甚至直接省去了开发的时间和成本

执行层

最后执行层是应用程序实际会运行的地方。KubeVela 允许你在统一的工作流中,部署和管理应用程序到 Kubernetes 集群例如本地、托管云服务、IoT/边缘设备端等等。

下一步