Kuboard

Kuboard 是一款专为 Kubernetes 设计的免费管理界面,兼容 Kubernetes 版本 1.13 及以上。Kuboard 每周发布一个 beta 版本,最长每月发布一个正式版本,经过两年的不断迭代和优化,已经具备多集群管理、权限管理、监控套件、日志套件等丰富的功能,并且有 1000+ 的企业将 Kuboard 应用于其生产环境。Kuboard 自 2019年8月发布第一个版本以来,得到了众多用户的认可,目前已经获得了 20000+ GitHub Star。

一个免费开源的多集群管理系统_kuboard

特色功能

多种认证方式

Kuboard 可以使用内建用户库、gitlab / github 单点登录或者 LDAP 用户库进行认证,避免管理员将 ServiceAccount 的 Token 分发给普通用户而造成的麻烦。使用内建用户库时,管理员可以配置用户的密码策略、密码过期时间等安全设置。

一个免费开源的多集群管理系统_kuboard_02

多集群管理

管理员可以将多个 Kubernetes 集群导入到 Kuboard 中,并且通过权限控制,将不同集群/名称空间的权限分配给指定的用户或用户组。

一个免费开源的多集群管理系统_k8s_03

微服务分层展示

在 Kuboard 的名称空间概要页中,以经典的微服务分层方式将工作负载划分到不同的分层,更加直观地展示微服务架构的结构,并且可以为每一个名称空间自定义名称空间布局。

一个免费开源的多集群管理系统_kuboard_04

工作负载的直观展示

Kuboard 中将 Deployment 的历史版本、所属的 Pod 列表、Pod 的关联事件、容器信息合理地组织在同一个页面中,可以帮助用户最快速的诊断问题和执行各种相关操作。

一个免费开源的多集群管理系统_kuboard_05

工作负载编辑

Kuboard 提供了图形化的工作负载编辑界面,用户无需陷入繁琐的 YAML 文件细节中,即可轻松完成对容器的编排任务。支持的 Kubernetes 对象类型包括:Node、Namespace、Deployment、StatefulSet、DaemonSet、Secret、ConfigMap、Service、Ingress、StorageClass、PersistentVolumeClaim、LimitRange、ResourceQuota、ServiceAccount、Role、RoleBinding、ClusterRole、ClusterRoleBinding、CustomResourceDefinition、CustomResource 等各类常用 Kubernetes 对象。

一个免费开源的多集群管理系统_kuboard_06

存储类型支持

在 Kuboard 中,可以方便地对接 NFS、CephFS 等常用存储类型,并且支持对 CephFS 类型的存储卷声明执行扩容和快照操作。

一个免费开源的多集群管理系统_kuboard_07

丰富的互操作性

可以提供许多通常只在 kubectl 命令行界面中才提供的互操作手段,例如:

  • Top Nodes / Top Pods
  • 容器的日志、终端
  • 容器的文件浏览器(支持从容器中下载文件、上传文件到容器)
  • KuboardProxy(在浏览器中就可以提供 kubectl proxy 的功能)

套件扩展

Kuboard 提供了必要的套件库,使得用户可以根据自己的需要扩展集群的管理能力。当前提供的套件有:

  • 资源层监控套件,基于 Prometheus / Grafana 提供 K8S 集群的监控能力,可以监控集群、节点、工作负载、容器组等各个级别对象的 CPU、内存、网络、磁盘等资源的使用情况;
  • 日志聚合套件,基于 Grafana / Loki / Promtail 实现日志聚合;
  • 存储卷浏览器,查看和操作存储卷中的内容;

告警配置

可以通过界面直接配置资源层监控套件发送告警消息:

  • 支持邮件、微信发送告警消息;
  • 支持告警路由配置;
  • 支持告警规则配置等;

操作审计

Kuboard 支持操作审计的功能:

  • 审计用户通过 Kuboard 界面和 Kuboard API 执行的操作;
  • 自定义审计规则;

一键部署

依赖条件

Kuboard v4 需要使用数据库作为存储,支持的数据库类型有:

  • MySQL >= 5.7
  • MariaDB >= 8.0
  • OpenGauss >= 3.0

数据库

在 MySQL(或者 MariaDB)中创建数据库,建库脚本如下:

CREATE DATABASE kuboard DEFAULT CHARACTER SET = 'utf8mb4' DEFAULT COLLATE = 'utf8mb4_unicode_ci';
create user 'kuboard'@'%' identified by 'Kuboard123';
grant all privileges on kuboard.* to 'kuboard'@'%';
FLUSH PRIVILEGES;

启动 Kuboard

sudo docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 2080:80/tcp \
  -e TZ="Asia/Shanghai" \
  -e DB_DRIVER=com.mysql.cj.jdbc.Driver \
  -e DB_URL="jdbc:mysql://192.168.31.66:3306/kuboard?serverTimezone=Asia/Shanghai" \
  -e DB_USERNAME=root \
  -e DB_PASSWORD=123456 \
  swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4

访问 Kuboard

在浏览器打开 Kuboard 的地址,例如:http://127.0.0.1:2080/ ,Kuboard 的登录界面如下图所示。管理员用户为: admin,默认密码为 : Kuboard123

一个免费开源的多集群管理系统_集群管理_08

导入集群

此时您已完成了 Kuboard v4 的安装。后续请在 Kuboard 界面上执行如下操作:修改 admin 的密码,创建普通用户并授权,导入 Kubernetes 集群。

一个免费开源的多集群管理系统_集群管理_09

开源信息

官网地址

https://kuboard.cn/

开源地址

https://github.com/eip-work/kuboard-press

演示环境

https://demo.kuboard.cn

用 户 demo

密 码 demo123

一个免费开源的多集群管理系统_集群管理_10

一个免费开源的多集群管理系统_kuboard_11