Skip to content

Kuboard-Spary

基于 kubespray (opens new window)提供图形化的 K8S 集群离线安装、维护工具。

官网

KuboardSpray | https://kuboard-spray.cn/

兼容性

操作系统的兼容性取决于 资源包,最新资源包 支持的操作系统有: Ubuntu、Anolis、CentOS、RedHat、OracleLinux、Rocky Linux、Kylin Linux Advanced Server、openSUSE Leap 等

安装Kuboard-Spray

找一台不低于1核2G,不少于10G剩余磁盘空间,已经安装好 docker 的服务器,执行如下指令,即可完成 KuboardSpray 的安装:

离线安装时,在可以联网的机子上拉取对应镜像

bash
[root@manage ~]# docker load -i kuboard-spray-v1.2.4-amd64.tar 
0eba131dffd0: Loading layer [==================================================>]  75.16MB/75.16MB
6bf5922392b8: Loading layer [==================================================>]  3.584kB/3.584kB
b7ec1bdadac9: Loading layer [==================================================>]  376.1MB/376.1MB
a1116a8b0eba: Loading layer [==================================================>]  164.5MB/164.5MB
63e1f35eb2b6: Loading layer [==================================================>]  2.048kB/2.048kB
57ad3256d2a2: Loading layer [==================================================>]   2.56kB/2.56kB
befa9dce28ec: Loading layer [==================================================>]  479.2MB/479.2MB
ed17f8e2e740: Loading layer [==================================================>]  86.53kB/86.53kB
06d40503cfc3: Loading layer [==================================================>]  24.06kB/24.06kB
eefc133193fd: Loading layer [==================================================>]  23.55kB/23.55kB
2d2497260679: Loading layer [==================================================>]   7.68kB/7.68kB
0f14582253f2: Loading layer [==================================================>]  7.517MB/7.517MB
c0d05ade22b8: Loading layer [==================================================>]  258.6kB/258.6kB
b5f895fc864b: Loading layer [==================================================>]  18.94kB/18.94kB
c2d721dd7251: Loading layer [==================================================>]  17.19MB/17.19MB
5b5b9f1e937e: Loading layer [==================================================>]  16.38MB/16.38MB
de00719b1631: Loading layer [==================================================>]  4.096kB/4.096kB
3462c7be3056: Loading layer [==================================================>]   24.7MB/24.7MB
Loaded image: eipwork/kuboard-spray:v1.2.4-amd64

启动kuboard-spray容器

bash
docker run -d \
  --privileged \
  --restart=unless-stopped \
  --name=kuboard-spray \
  -p 80:80/tcp \
  -e TZ=Asia/Shanghai \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ~/kuboard-spray-data:/data \
  eipwork/kuboard-spray:latest-amd64
  # 如果是 arm64 环境,请将标签里的 amd64 修改为 arm64,例如 eipwork/kuboard-spray:latest-arm64
  # 如果抓不到这个镜像,可以尝试一下这个备用地址:
  # swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard-spray:latest-amd64

常见问题

  • KuboardSpray 的信息保存在容器的 /data 路径,请将其映射到一个安全的地方,上面的命令中,将其映射到了 ~/kuboard-spray-data 路径;
  • 只要此路径的内容不受损坏,重启、升级、重新安装 Kuboard-Spray,或者将数据及 Kuboard-Spray 迁移到另外一台机器上,都可以找回到原来的信息

登录kuboard-spray

在浏览器地址栏中输入 http://这台机器的IP地址,输入用户名 admin,默认密码 Kuboard123,即可登录 kuboard-spray 界面

正常可以访问到此页面,输入用户名 admin,默认密码 Kuboard123

image-20240217211216566

加载资源包

离线资源的拉取

点击资源包列表,点击离线导入

image-20240218093318596

在弹出的框框内点击离线导入,选择对应的镜像源,按照步骤二的第1点拉取镜像并保存,上传到目标机器,在目标机器执行步骤二的第3点,记录步骤三的yaml信息

image-20240218093430491

加载资源包

点击添加集群安装计划

image-20240217211252336

新环境点击添加资源包—>确定(添加资源包)

image-20240217211316586

在线安装直接选择导入

离线安装在其他有网的机子,拉取对应离线镜像包/自己制作对应镜像包,然后点击离线导入

image-20240217211337162

权限问题:

  • 导入资源包时,可能会碰到 no such file or directory 或者 permission denied 之类的错误提示,通常是因为开启了 SELinux,导致 kuboard-spray 不能读取映射到容器 /data 的路径

离线导入:

  • 如果处在内网环境,上图中的列表默认将是空的,请注意其中的 离线加载资源包 按钮,它可以引导轻松完成资源包的离线加载过程。
  • 离线导入所需的yaml信息,记得随离线资源一起带走

将离线包导入【离线需操作】

bash
[root@manage ~]# docker load -i kuboard-spray-resource-spray-v2.21.0c_k8s-v1.26.4_v4.4-amd64.tar 
8d3ac3489996: Loading layer [==================================================>]  5.866MB/5.866MB
5623aeba2121: Loading layer [==================================================>]  456.2MB/456.2MB
d623e0c8461d: Loading layer [==================================================>]  195.5MB/195.5MB
3447235ba453: Loading layer [==================================================>]  397.5MB/397.5MB
bd33c99c3d79: Loading layer [==================================================>]  496.2MB/496.2MB
f3dc33297d56: Loading layer [==================================================>]  6.788MB/6.788MB
da94e024bd20: Loading layer [==================================================>]  48.84MB/48.84MB
fe2bac659d0c: Loading layer [==================================================>]  7.168kB/7.168kB
35bf8d78d459: Loading layer [==================================================>]  7.168kB/7.168kB
a25e06ce9733: Loading layer [==================================================>]  114.7kB/114.7kB
Loaded image: eipwork/kuboard-spray-resource:spray-v2.21.0c_k8s-v1.26.4_v4.4-amd64

将步骤三的yaml信息填到离线资源包的框框中

image-20240217222201948

image-20240217211348340

点击确认

image-20240217211547684

等待完成,完成后离线包已导入

image-20240217211659832

然后回到上一个页面点击任务已结束

image-20240217211717853

顶上会提示已导入成功,这个页面也可以关闭了

image-20240217211728236

安装集群

添加计划

回到最初的页面/回到首页,点击添加集群安装计划按钮,填写集群名称、选择资源包,点击确认

集群名称:这个名称保存后不可修改

资源包:选择已经导入的资源包,如果没有可尝试刷新,若刷新也没有可能是未导入成功

image-20240217211809738

集群规划

点击添加节点

注意:

kuboard-spray 所在机器不能当做 K8S 集群的一个节点,因为安装过程中会重启集群节点的容器引擎,这会导致 kuboard-spray 被重启掉。

image-20240217211827776

输入节点名称、选择节点角色,点击确认

注意点:

  • 最少的节点数量是 1 个
  • ETCD 节点、控制节点的总数量必须为奇数
  • 全局设置 标签页,可以设置节点的通用连接参数,例如所有的节点都使用相同的 ssh 端口、用户名、密码,则共同的参数只在此处设置即可
  • 在节点标签页,如果该节点的角色包含 etcd 则必须填写 ETCD 成员名称 这个字段
  • 如果 KuboardSpray 所在节点不能直接访问到 Kubernetes 集群的节点,可以设置跳板机参数,使 KuboardSpray 可以通过 ssh 访问集群节点
  • 集群安装过程中,除了已经导入的资源包以外,还需要使用 yum 或 apt 指令安装一些系统软件,例如 curl, rsync, ipvadm, ipset, ethtool 等,此时要用到操作系统的 apt 软件源或者 yum 软件源。全局设置 标签页中,可以引导完成 apt / yum 软件源的设置,可以:
    • 使用节点操作系统已经事先配置的 apt / yum 源
    • 在安装过程中自动配置节点的操作系统使用指定的软件源
  • 如果使用 docker 作为集群的容器引擎,还需要在 全局设置 标签页指定安装 docker 用的 apt / yum 源
  • 如果使用 containerd 作为容器引擎,则无需配置 docker 的 apt / yum 源,containerd 的安装包已经包含在 KuboardSpray 离线资源包中

image-20240217211845502

在右侧输入对应信息,选择组件等,点击验证连接会测试与主机的连接性,成功会给出 对应的信息

image-20240217212145467

image-20240217212200126

保存信息

填写完后,点击保存

image-20240217212403873

安装集群

点击安装/设置集群

image-20240217212444645

默认即可,点击确认

image-20240217212504152

会新开一个窗口输出安装日志

image-20240217212659175

安装完成/失败后底下会有提示,右上角也会有结束的标志

image-20240217214042195

回到原来的页面点击任务已结束

image-20240217214127953

安装完后

image-20240217214156069

在master节点,可查看节点信息

bash
[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   4m24s   v1.26.4
node1    Ready    <none>          3m16s   v1.26.4

可选组件取消了kuboard,可以按照自己的习惯,安装其k8s WEB管理工具,如dashboard、kuboard,如果需要kuboard完全可以在可选组件选择kuboard进行安装

当前安装方式,证书是一年的证书,每个月的第一个星期会进行滚动更新,至于滚动更新是依赖于kuboard-spary,还是依赖于kuboard,暂时不确认

其他

查看污点

bash
# kubectl describe nodes <node-name> | grep Taints
# 如master节点
kubectl describe nodes master |grep Taints

删除污点

bash
gameble-
# gameble就是污点名,后加减号就删掉了
kubectl taint nodes <node-name> <taint-name>:<effect>-
# 如master
kubectl taint nodes master gameble-