# Kubean Enters CNCF Sandbox In April 2024, the CNCF community welcomed a vibrant green pod (Kubean) into the Sandbox.  Over the past few years, several developers from DaoCloud have been maintaining code in the Kubespray community. On the occasion of May Day 2022, inspired by Uncle Kai and Brother Xiao, they casually sowed a green pod [Kubean](https://kubean-io.github.io/kubean/zh/) in the CNCF community. This young pod, after nearly two years of diligent nurturing, began to crackle and grow, and now serves as the initial spark for the [DCE 5.0](../../../dce/index.mdroduction cluster, capable of creating hundreds to thousands of clusters on demand. On April 15, 2024, after [an 11-member CNCF TAG committee vote](https://github.com/cncf/sandbox/issues/49), with 8 in favor and 3 not voting, the results exceeded the 66% threshold, successfully entering the well-known Sandbox for further incubation. ## What Can This Pod Do? At its core, Kubean is an Operator, providing CR resources for containerized clusters, capable of deploying clusters and more as Jobs. Like the legendary generals who could conjure soldiers from beans, as long as you have an underlying cluster, you can deploy numerous new clusters in various environments using Kubean. - Supports declarative deployment of clusters from scratch using Operator and Helm Chart, supports D1, D2 for efficient operations (scaling, upgrading, and uninstalling) - Capable of deploying K8s clusters on bare metal, virtual machines, cloud platforms, and more - Supports almost all Linux distributions - Supports log tracing for convenient cluster operations (upgrades, scaling, uninstallation), and also facilitates rolling back clusters to a specific job state - Supports engines like Kubespray - Supports offline installation and upgrading Here is the overall architecture diagram of Kubean:  Kubean operates on an existing Kubernetes cluster, using standard CRD resources and Kubernetes built-in resources to control and manage the lifecycle of clusters (installation, uninstallation, upgrading, and scaling). Kubean uses Kubespray as its underlying technology dependency, simplifying the cluster deployment process and lowering the barrier for users. Additionally, it builds on Kubespray's capabilities by adding new features like operation records and offline version tracking.  This pod consists of four beans: - Big Bean Cluster Controller: Monitors the Cluster object. Uniquely identifies a cluster, possesses access information, type information, deployment parameters of the cluster nodes, and associates all operations (ClusterOperation objects) on this cluster; - Second Bean ClusterOperation Controller: Monitors ClusterOperation objects. When a ClusterOperation Object is created, the controller assembles a Job to execute the operation defined in the CRD object; - Third Bean Manifest Controller: Monitors Manifest objects. Used to record and maintain the current version of components, packages, and versions used and compatible with Kubean; - Fourth Bean LocalArtifactSet Controller: Monitors LocalArtifactSet objects. Used to record the supported components and versions of offline packages. ## Comparison with Similar Products Kubean currently defaults to the Kubespray underlying engine, but plans to support more engines in the future, such as switching to newer engines like Kops and KubeKey. Kubespray is part of the kubernetes-sigs ecosystem, designed for deploying production clusters as an open-source project. Kubean was initially developed based on Kubespray, but has since added several new features. Below is a simple comparison between Kubean, Kubespray, Kops, and KubeKey:
Kubean | Kubespray | Kops | KubeKey | |
---|---|---|---|---|
Applicable Scenarios | Suitable for cloud-native declarative API cluster management scenarios | Suitable for complex scenarios with varying deployment platforms | Suitable for fixed infrastructure platform management | Suitable for lightweight dependency deployment scenarios |
Containerization Support | Supported | Supported | Not Supported | Not Supported |
CLI Support | Not Supported | Supported | Supported | Supported |
Declarative API | Supported | Not Supported | Not Supported | Not Supported |
Supported Deployment Platforms |
|
|
|
Unknown |
Mixed Architecture Support | Supported | Supported | Not Supported | Not Supported |
Offline Deployment | Supported | Supported | Not Supported | Supported |
Implementation Method |
|
|
|
|
Operating System Support |
|
|
Depends on infrastructure support |
|
Runtime Support |
|
|
|
|
Upgrading | Supported | Supported | Supported | Supported |