云平台设计 之 基于wayne构建的Kubenetes 多集群管理平面 Basa

基于wayne构建的Kubenetes 多集群管理平面 Basa

Posted by 董江 on Tuesday, November 29, 2022

基于wayne构建的Kubenetes 多集群管理平面 Basa

Basa (体验版) 是一个支持 Multi-cluster Kubernetes集群的 可视化管理平台, 通过直观的页面操作便可完成Kubernetes中资源的创建、部署等操作。

采用plugin架构,通过插件化的方式将不同功能尽量的分离,更利于各种定制化功能的扩展。

basa

云平台体验版地址:https://play.kubeservice.cn 云平台体验版账号:kubeservice 云平台体验版地址:kubeservice

动机

业界已经有很好的Kubernetes集群管理平台比如:KubesphereRancher, 也有很好的桌面工具Lens 都基于Kubernetes之上封装了接口和UI更方便开发者上手和部署

但是对于企业来说:上云/云原生改造 的初衷: 上线效率成本核算权限控制企业内全部资源的管理 等维度

因此设计的核心点:

  1. 融入 部门项目模块概念: 通过RBAC的方式细化了资源控制的权限,适合建立企业内部的私有云平台;
  2. 纳管多套集群: pod集群命名空间等元数据自管理; 可快速纳管全部集群
  3. 权限细力度控制: 除了kubeconfigRBAC的访问权限外,平台按人员角色(管理员、部门负责人、项目负责人、开发人员、测试人员、运维人员等)设计不同权限; 运维视角研发视角隔离
  4. FaaS能力: 方便业务方更好接入, 支持openFaaS Serverless 无差别部署
  5. 成本核算: FinOps部门、团队、项目级别 资源可做到 成本分摊
  6. 上线效率: 即支持webssh 通过 kubectl apply 部署 也支持 页面引导式 部署
  7. 报表: 数字化报表, 支持部门项目模块的呈现
  8. 多集群、多租户能力:支持一键式发布不通集群,并可以动态协同总发布实例数

目标

构建基于企业架构, 支持成本分摊 的多云管理平台. 服务好更好的企业级私有云平台

特性

  • 支持多集群、多租户。支持K8s机器部署 和 多集群k8s集群纳管;
  • 支持企业级别应用申请;
  • 支持用户权限分类。支持项目管理员、项目负责人、项目成员、访客权限;
  • 支持ldap登入;
  • 保留完整的发布历史。支持历史发布、更改的回溯;
  • 支持严密权限校验的webssh。用户可以通过 Web shell 的形式进入发布的 Pod 进行操作,自带完整的权限校验;
  • 支持webhook通知:方便管理员推送集群、业务通知和故障处理报告等;
  • 支持Serverless openFaaS 接入
  • 支持 ingress 自动发现Pod 和 serverless function

架构

basa

项目整体采用前后端分离的方案实现。

  • 前端采用Angular框架进行数据交互和展示,使用Ace编辑器进行Kubernetes资源模版编辑
  • 后端采用Beego框架做数据接口处理,持久层采用MySQL存储,使用client-go与Kubernetes进行交互

特点

  • 图形化方式 : 易用的Web管理界面,降低企业上云部署复杂度;
  • 基础设施编排: 支持以使用任何公有云或者私有云的Linux主机资源,也支持Kubernetes内部署;
  • 容器编排与调度: 支持Kubernetes 1.16.6 + 所有版本
  • 企业级权限管理: 支持企业架构LDAPOauth2.0 等认证方式,并支持对人员赋予不同执行权利;
  • 其他小特点: 基于模板复制workload运维视角研发视角隔离; 应用误删除回滚 等等 20+特性

使用

1 2 3 4 5 6

TODO

  1. Helm 应用商店 接入
  2. 监控报警 通过webhook报警
  3. 集群规划能力

欢迎大家加入 KubeServiceStack Community

Basa 开源工程地址: https://github.com/kubeservice-stack/basa

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付