最近使用 Kuboard 在几台闲置主机上搭建起了 Kubernetes 集群,不得不说确实很方便。在 Kuboard 之前,我尝试过通常的部署方法、Kubesphere、SealOS等方法,但是都失败了,搞得我有点PTSD(现在回想起来应该是存储空间不足导致的)。

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

Kuboard官网

Kuboard 提供多种安装方式,此处使用 Kuboard Spray(一个远程管理 Kubernetes 集群的 Docker 应用)部署纯净的 Kubernetes 集群,之后再单独安装 Kuboard 的方法。按照官方教程可以方便地完成部署,这篇文章主要记录 Kuboard 部署集群期间的一些坑。


准备工作

需要准备以下设备:

预备创建集群的机器

这些机器需要性能充足,并且需要在同一个内网中,可以互相访问到。如果是物理上不同位置的主机,可以使用 n2n 组网。

安装之前请确保这些机器上没有容器运行引擎(Docker Container)。

请保证这些主机有 30GB 以上的剩余存储空间。

安装过程中, Kuboard Spray 会尝试禁用 firewalld 防火墙。但是在机器上没有安装此防火墙的情况下它仍然会尝试禁用,然后因为找不到防火墙而报错。因此在安装前,请在所有节点先安装 firewalld 防火墙,再禁用它。(有洁癖的安装完集群后卸载了就行)

apt install firewalld
systemctl stop firewalld
systemctl disable firewalld

一个可以连接集群内所有机器,但不加入集群的控制端机器

这台机器主要是为了使用 Kuboard Spray 远程操作集群各节点来安装程序。

此机器需要安装有 Docker。

因为安装过程中会重启容器引擎,而 Kuboard Spray 在 Docker 上运行,所以此机器不能加入集群。可以使用虚拟机作为此机器。

为了避免神奇的网络问题导致的错误,Kuboard Spray 需要预先在控制端下载资源包,之后通过内网发送至各节点。

安装 Kubernetes 集群

按照官方教程,在控制端运行 Kuboard Spray 的 Docker 镜像,规划集群。

默认的安装规划会将 Kuboard 安装至 master 节点并占用80端口,如果不想安装 Kubaord 或希望将其调度至其他节点通过Ingress访问,需要取消选中可选组件中的 Kuboard ,在之后手动安装。
file

按照官方教程继续安装。

安装 Kuboard

当 Kubernetes 集群安装完成之后,按照安装 Kuboard v3 - kubernetes向集群部署 Kuboard 。

截止2022-11-22,官网提供了两种部署方案:

  1. 使用 hostPath 提供持久化,数据存储在单节点
  2. 使用 StorageClass 提供持久化,数据在多节点可用

但方案1的yaml文件是有问题的,应用后无法正常运行,问题及解决方案详见Issue 328

推荐使用方案2来部署 Kuboard ,StorageClass 使用 NFS 创建。

部署NFS

按照搭建NFS Server操作即可。