KubeSphere LuBan,是一个分布式的云原生可扩展开放架构,为扩展组件提供一个可热插拔的微内核。其中内核部分(KubeSphere Core)仅包含系统运行的必备基础功能,而将独立的业务模块分别封装在各个扩展组件(Extensions)中。用户可在系统运行时动态地安装、卸载、启用、禁用扩展组件。

KubeSphere LuBan 架构

KubeSphere LuBan 架构设计如下图所示。

architecture

为什么推出 KubeSphere LuBan

自 2018 年以来,KubeSphere 混合多云容器管理平台已发布过十几个版本,其中包括三个重大版本。为了满足用户需求,KubeSphere 集成了众多企业级功能,如多租户管理,多集群管理,DevOps,GitOps,服务网格,微服务,可观测(包括监控、告警、日志、审计、事件、通知等),应用商店,边缘计算,网络与存储管理等。

虽然 KubeSphere 的一站式容器解决方案极大地提升了用户的容器使用体验,但也带来了如下挑战:

发版周期长

在发布新版本时,需要等待所有组件完成开发、测试并通过集成测试。

响应用户不及时

由于各组件无法单独迭代,KubeSphere 发布后,对社区和用户组件反馈处理需要等待 KubeSphere 发布新版本后才能一并交付给用户,导致响应不够及时。

代码耦合

尽管之前已能实现单独启用/禁用特定组件,但这些组件的前后端代码仍然耦合在一起,容易互相影响,架构上不够优雅。

系统资源占用过多

部分组件默认启用,对于没有相关需求的用户来说,可能会占用过多的系统资源。

KubeSphere LuBan 优势

插件式的核心框架

支持独立开发和部署组件以扩展系统的功能。组件可以根据需求进行添加、升级或移除,而不需要修改核心框架的代码。

全开放的基础 UI 组件库

组件对所有人开放,任何人都可以自由地访问、使用和扩展这些组件。用户根据自己的需求进行定制和扩展,以满足不同的设计和功能要求。

前后端热更新、热修复

开发者可以在系统运行时对前端和后端进行实时更新和修复,提高了开发和运维的效率,同时保证了应用程序的可用性和用户体验。

开放性扩展中心,生态共建

我们提供一个开放的平台,鼓励第三方开发者通过组件向系统添加新的功能或增强现有功能,在系统的框架内进行开发和集成,并将他们的组件与系统进行无缝连接,共同构建一个健康、繁荣的生态系统。

KubeSphere LuBan 如何帮助到您

KubeSphere LuBan 架构可以使以下人员受益:

KubeSphere 用户

KubeSphere 用户可以自由选择启用哪些 KubeSphere 扩展组件。同时还能将自己的应用无缝融入到 KubeSphere 控制台。此外,随着 KubeSphere 扩展组件生态的丰富,用户可以在 KubeSphere 扩展中心自由选择更丰富的产品和服务,最终实现容器管理平台的千人千面的效果。

KubeSphere 维护者

扩展机制使得维护者可以更聚焦 KubeSphere 核心功能的开发,并可使得 KubeSphere Core 更加轻量,版本发布节奏也可以加快。此外,因为扩展组件能够独立进行迭代,能够更及时地满足用户的需求。

KubeSphere 贡献者

扩展机制的引入使得 KubeSphere Core 及 KubeSphere 其他扩展组件变得更加松耦合,开发也更加易于上手。

云原生应用开发商(ISV)或其他开源项目

众多 ISV 或其他开源项目可以低成本将产品或开源项目无缝融入到 KubeSphere 生态系统中。比如 Karmada/KubeEdge 的开发人员可以基于 KubeSphere LuBan 开发独立的 Karmada/KubeEdge 控制台。

什么是 KubeSphere 扩展组件?

KubeSphere 扩展组件是一个可以对 KubeSphere 功能进行扩展并借助 Helm 进行编排的,遵循 KubeSphere 扩展组件开发规范的 Helm Chart。

作为云原生领域的开发者,您不必再花大量的时间去学习一个私有的应用编排方式。

可前往 KubeSphere Marketplace 查看、安装已发布的扩展组件。

KubeSphere 扩展组件可以做什么?

从前端 UI 到后端 API,KubeSphere 的几乎每个部分都可以通过扩展 API 进行定制和增强。KubeSphere 的许多核心功能也都是作为扩展构建的,并使用相同的扩展 API。

以下是使用扩展 API 可以实现的一些示例:

  1. 在项目的侧边导航栏,注入新的菜单与功能页面,支持管理更多类型的资源。

  2. 在平台层级菜单中注入功能入口,对平台的管理能力进行增强。

  3. 直接嵌入已有的第三方功能组件页面到 KubeSphere,对各分散的系统进行聚合。

  4. 覆盖 KubeSphere 已有的页面路由,实现您独有的业务逻辑。

  5. 对 KubeSphere 的 API 进行扩展。

如果您想更全面地了解扩展 API,请参阅扩展能力

如何构建扩展组件?

请参阅开发案例章节来熟悉如何构建扩展组件。

如果您在扩展组件的开发过程中有疑问,请尝试在 GitHub Issue 获得帮助。

如何发布扩展组件?

请参阅发布扩展组件,了解如何提交扩展组件到 KubeSphere Marketplace。