# 一颗绿色豆荚入选 CNCF Sandbox 2024 年 4 月,CNCF 社区有一颗绿意盎然的豆荚(Kubean)成功入选了 Sandbox。 ![Kubean Logo](./images/kubean01.png) 这几年 DaoCloud 一直有几位开发者在 Kubespray 社区承担代码维护的职责, 2022 年五一之际,在开叔和潇哥的建议下,随手在 CNCF 社区撒下了一颗绿色的豆荚 [Kubean](https://kubean-io.github.io/kubean/zh/)。 这颗幼小的豆荚经过近两年时间的辛勤浇灌,开始噼啪作响,发芽成长,迄今作为 [DCE 5.0](../dce/index.md) 生产集群的初始火种,可以按需造化出成百上千的集群。 2024 年 4 月 15 日,经过 [CNCF TAG 委员会 11 人投票](https://github.com/cncf/sandbox/issues/49), 其中 8 人赞成,3 人未投票,投票结果超过了 66% 的阈值,成功入选了业界知名的 Sandbox 沙箱进一步孵化。 ## 这个豆荚能干什么 Kubean 这个豆荚本质上是一个 Operator,为容器化集群提供 CR 资源,能够以 Job 的形式完成集群部署等操作。 就像传说中撒豆成兵的仙界将帅一样,只要你有一个集群打底,就可以通过 Kubean 用多种方式在各种环境下部署一个又一个的新生集群。 - 支持 Operator 和 Helm Chart 方式声明式方式从零部署集群,支持 D1、D2 高效运维集群(扩容、升级、卸载等) - 支持在裸金属、虚拟机、云平台等各种环境上部署 K8s 集群 - 支持几乎所有 Linux 发行版 - 支持日志追溯,方便集群运维(升级、扩展、卸载),也方便将集群回滚到某个作业状态 - 支持 Kubespray 等引擎 - 支持离线安装和升级 这是 Kubean 的整体架构图: ![Kubean 架构图](./images/kubean02.png) Kubean 需要运行在一个已存在的 Kubernetes 集群上,通过标准 CRD 资源和 Kubernetes 内建资源来控制和管理集群的生命周期(安装、卸载、升级、扩容、缩容等)。 Kubean 采用 Kubespray 作为底层技术依赖,一方面简化了集群部署的操作流程,降低了用户的使用门; 另一方面在 Kubespray 能力基础上增加了集群操作记录、离线版本记录等诸多新特性。 ![Kubean Operator](./images/kubean03.png) 这个豆荚有四粒豆: - 大豆 Cluster Controller:监视 Cluster 对象。 唯一标识一个集群,拥有集群节点的访问信息、类型信息、部署参数信息,并且关联所有对此集群的操作(ClusterOperation 对象); - 二豆 ClusterOperation Controller:监视 ClusterOperation 对象。 当 ClusterOperation Object 被创建时,控制器会组装一个 Job 去执行 CRD 对象里定义的操作; - 三豆 Manifest Controller:监视 Manifest 对象。 用于记录和维护当前版本的 Kubean 使用和兼容的组件、包及版本; - 四豆 LocalArtifactSet Controller:监视 LocalArtifactSet 对象。 用于记录离线包支持的组件及版本信息。 ## 同类产品对比 Kubean 目前默认基于 Kubespray 底层引擎,未来还会做更多引擎的支持,比如可以切换到 Kops、KubeKey 这类新引擎。 Kubespray 是隶属于 kubernetes-sigs 生态,专为生产集群部署所设计的开源项目。 Kubean 最初是在 Kubespray 基础上开发的,又新增了一些功能。 以下是 Kubean 与 Kubespray、Kops 和 KubeKey 的简单对比:
Kubean | Kubespray | Kops | KubeKey | |
---|---|---|---|---|
适用场景 | 适合云原生声明式 API 的集群管控场景 | 适合部署平台多变的复杂场景 | 适合固定的基础设施平台管理 | 适合底层依赖轻量化的部署场景 |
是否可容器化 | 支持 | 支持 | 不支持 | 不支持 |
是否支持命令行 | 不支持 | 支持 | 支持 | 支持 |
声明式API | 支持 | 不支持 | 不支持 | 不支持 |
支持部署的平台 |
|
|
|
未知 |
混合架构支持 | 支持 | 支持 | 不支持 | 不支持 |
离线部署 | 支持 | 支持 | 不支持 | 支持 |
实现方式 |
|
|
|
|
操作系统支持 |
|
|
取决于基础设施的支持情况 |
|
运行时支持 |
|
|
|
|
升级 | 支持 | 支持 | 支持 | 支持 |