简介

kuboard是一个kubernetes多集群管理工具,当前大版本有v3,v4,本文件最新版本v4为基础,部署环境为单机(kuboard与kubernetes在同一机器中)。

兼容性

  • Kuboard v4 使用了与 Kuboard v3 不同的技术架构,不能直接从 Kuboard v3 升级到 Kuboard v4;
  • 可以将同一个集群同时导入到 Kuboard v3 和 Kuboard v4。此时 Kuboard v3 / v4 都可以有效管理该集群。
  • 在 v3 以及 v4 中的如果集群名字相同,Kuboard 套件不受影响,在 V3 / V4 中都可以正常使用。

v3 & v4差异

Kuboard v4 相较于 v3 主要差异如下:

  1. Kubernetes 版本适配范围:
  • v3 支持 Kubernetes 1.13 - 1.33
  • v4 支持 Kubernetes 1.15 - 1.34(持续跟进 Kubernetes 最新版本)
  1. 用户体验提升
  • Kuboard v4 覆盖 v3 的所有主要功能
  • Kuboard v4 兼容 v3 的主要套件,升级到 V4 时,已安装套件不受影响
  • Kuboard v4 将常用 Kubernetes 对象缓存到本地,支持模糊查询,支持更快的检索速度
  • Kuboard v4 可以在一个列表中同时显示多个集群、名称空间的对象,查询操作更快捷
  • Kuboard v4 提供更简洁更清晰的授权模型,给用户授权时更灵活更方便
  1. 技术架构
  • 技术栈差异:
    • Kuboard v3 技术栈: vue 2.7 + golang 1.18 + etcd 3.4
    • Kuboard v4 技术栈: vue 3.5 + java 1.17 + MySQL/MariaDB/Postgre(三种数据库选一)
  • Kuboard v4 支持高可用部署
  • Kuboard v4 提供更丰富的 API 供用户调用

Kuboard v3.x 版本说明

Kuboard v3.x 支持 amd64 (x86) 架构和 arm68 (armv8) 架构的 CPU;

兼容性

Kubernetes 版本 Kuboard 版本 兼容性 说明
v1.33 v3.5.2.x 😄 已验证
v1.32 v3.5.2.x 😄 已验证
v1.31 v3.5.2.x 😄 已验证
v1.30 v3.5.2.x 😄 已验证
v1.29 v3.5.2.x 😄 已验证
v1.28 v3.5.2.x 😄 已验证
。。。

v3版本的兼容列表请参考v3兼容列表

v4版本安装

依赖条件

kuboard v4支持后端数据库类型及版本如下,任选一种即可。

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

准备数据库

MySQL/MariaDB

在 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;

OpenGauss

在 OpenGauss 命令行中创建数据库,建库脚本如下:

CREATE USER kuboard PASSWORD 'Kuboard123';
CREATE DATABASE kuboard OWNER=kuboard ENCODING='UTF8' DBCOMPATIBILITY='PG';
\c kuboard
CREATE SCHEMA kuboard AUTHORIZATION kuboard;

如果使用 OpenGauss 数据库,Kuboard 将使用 postgre SQL 语法操作数据库

启动 Kuboard

以下k8s静态pod、docker run启动时数据库连接均为外部独立数据库,连接地址根据自身环境按实际修改

kubernetes静态pod方式

准备静态pod的启动文件如下,pod启动后在kube-system命令空间下管理

---
apiVersion: v1
kind: Pod
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/name: kuboard-v4
  name: kuboard-v4
  namespace: kube-system
spec:
  containers:
    - env:
        - name: TZ
          value: "Asia/Shanghai"
        - name: DB_DRIVER
          value: "com.mysql.cj.jdbc.Driver"
        - name: DB_URL
          value: "jdbc:mysql://10.99.0.8:3306/kuboard?serverTimezone=Asia/Shanghai"
        - name: DB_USERNAME
          value: "kuboard"
        - name: DB_PASSWORD
          value: "Kuboard123"
      image: 'swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4'
      imagePullPolicy: IfNotPresent
      livenessProbe:
        failureThreshold: 3
        tcpSocket:
          port: 80
        initialDelaySeconds: 180
        periodSeconds: 10
        successThreshold: 1
        timeoutSeconds: 1
      name: kuboard
      ports:
        - containerPort: 80
          hostPort: 9870
          name: web
          protocol: TCP
      readinessProbe:
        failureThreshold: 3
        tcpSocket:
          port: 80
        initialDelaySeconds: 180
        periodSeconds: 10
        successThreshold: 1
        timeoutSeconds: 1
      volumeMounts:
        - mountPath: /app/logs
          name: logs
  volumes:
    - hostPath:
        path: "/var/log/kuboard"
      name: logs
  restartPolicy: Always
  tolerations:
    - key: node-role.kubernetes.io/master
      operator: Exists

docker run方式

使用 docker run 启动 Kuboard 容器时命令如下

  • 使用 MYSQL 时,启动 Kuboard 的脚本如下:
docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 80:80/tcp \
  -e TZ="Asia/Shanghai" \
  -e DB_DRIVER=com.mysql.cj.jdbc.Driver \
  -e DB_URL="jdbc:mysql://10.99.0.8:3306/kuboard?serverTimezone=Asia/Shanghai" \
  -e DB_USERNAME=kuboard \
  -e DB_PASSWORD=Kuboard123 \
  -v ./kuboard-log:/app/logs \
  swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4
  • 使用 MariaDB 时,启动 Kuboard 的脚本如下:
docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 80:80/tcp \
  -e TZ="Asia/Shanghai" \
  -e DB_DRIVER=org.mariadb.jdbc.Driver \
  -e DB_URL="jdbc:mariadb://10.99.0.8:3306/kuboard?&timezone=Asia/Shanghai" \
  -e DB_USERNAME=kuboard \
  -e DB_PASSWORD=Kuboard123 \
  -v ./kuboard-log:/app/logs \
  swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4
  • 使用 OpenGauss 时,启动 Kuboard 的脚本如下:
docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 80:80/tcp \
  -e TZ="Asia/Shanghai" \
  -e DB_DRIVER=org.postgresql.Driver \
  -e DB_URL="jdbc:postgresql://10.99.0.8:5432/kuboard?currentSchema=kuboard&characterEncoding=UTF8" \
  -e DB_USERNAME=kuboard \
  -e DB_PASSWORD=Kuboard123 \
  -v ./kuboard-log:/app/logs \
  swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4

docker compose方式

  • 创建目录kuboard-v4
    mkdir kuboard-v4
  • 进入kuboard-v4目录下创建文件 docker-compose.yaml,内容如下
configs:
  create_db_sql:
    content: |
      CREATE DATABASE kuboard DEFAULT CHARACTER SET = 'utf8mb4' DEFAULT COLLATE = 'utf8mb4_unicode_ci';
      create user 'kuboard'@'%' identified by 'kuboardpwd';
      grant all privileges on kuboard.* to 'kuboard'@'%';
      FLUSH PRIVILEGES;

services:
  db:
    image: swr.cn-east-2.myhuaweicloud.com/kuboard/mariadb:11.3.2-jammy
    # image: mariadb:11.3.2-jammy
    # swr.cn-east-2.myhuaweicloud.com/kuboard/mariadb:11.3.2-jammy 与 mariadb:11.3.2-jammy 镜像完全一致
    environment:
      MARIADB_ROOT_PASSWORD: kuboardpwd
      MYSQL_ROOT_PASSWORD: kuboardpwd
      TZ: Asia/Shanghai
    volumes:
      - ./kuboard-mariadb-data:/var/lib/mysql:Z
    configs:
      - source: create_db_sql
        target: /docker-entrypoint-initdb.d/create_db.sql
        mode: 0777
    networks:
      kuboard_v4_dev:
        aliases:
          - db
  kuboard:
    image: swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4
    # image: eipwork/kuboard:v4
    environment:
      - DB_DRIVER=org.mariadb.jdbc.Driver
      - DB_URL=jdbc:mariadb://db:3306/kuboard?serverTimezone=Asia/Shanghai
      - DB_USERNAME=kuboard
      - DB_PASSWORD=kuboardpwd
    ports:
      - "8000:80"
    volumes:
      - ./kuboard-log:/app/logs:Z
    depends_on:
      - db
    networks:
      kuboard_v4_dev:
        aliases:
          - kuboard

networks:
  kuboard_v4_dev:
    driver: bridge
  • 在kuboard-v4目录下启动v4
docker compose up -d
  • 在浏览器中打开kuboard地址,界面如下
    浏览器打开地址因部署方式,指定端口不同可能有异,根据实际情况访问指定的端口
    在这里插入图片描述
  • 用默认用户名和密码登录: admin Kuboard123。
    通kubectl的配置文件config导入后如下。
    在这里插入图片描述
    具体的部署说明,环境变量等设置可参考官网Kuboard

更多推荐