
0. ENV



kebernetes 1.23.4;
kuboard 3.3.0.0(升级到v3.3.0.7)。

1. 安装方式



在 K8S 中安装 Kuboard,主要考虑的问题是,如何提供 etcd 的持久化数据卷。建议的两个选项有:
使用 hostPath 提供持久化存储,将 kuboard 所依赖的 Etcd 部署到 Master 节点,并将 etcd 的数据目录映射到 Master 节点的本地目录;推荐
使用 StorageClass 动态创建 PV 为 etcd 提供数据卷;不推荐

2. 方法一:使用hostPath提供持久化



将Kuboard v3部署在K8S中,此次采用hostPath提供持久化,本次采用在线安装,当K8S服务器不能访问公网,也可以离线安装。
[root@k8s3-master ~]# kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
namespace/kuboard created
configmap/kuboard-v3-config created
serviceaccount/kuboard-boostrap created
clusterrolebinding.rbac.authorization.k8s.io/kuboard-boostrap-crb created
daemonset.apps/kuboard-etcd created
deployment.apps/kuboard-v3 created
service/kuboard-v3 created
复制
# 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
# kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
复制
定制参数
如果您想要定制 Kuboard 的启动参数,请将该YAML文件下载到本地,并修改其中的 ConfigMap。

2. 等待 Kuboard v3 就绪



执行指令 watch kubectl get pods -n kuboard,等待 kuboard 名称空间中所有的 Pod 就绪,如下所示,
[root@k8s3-master ~]# kubectl get pods -n kuboard
NAME READY STATUS RESTARTS AGE
kuboard-agent-2-8465b87b88-z6jb5 1/1 Running 0 3m18s
kuboard-agent-594497b96d-cdcr9 1/1 Running 1 (2m57s ago) 3m18s
kuboard-etcd-xrkh5 1/1 Running 0 4m7s
kuboard-questdb-59d446948-d5pcc 1/1 Running 0 3m18s
kuboard-v3-56b4b954c9-bgkrh 1/1 Running 0 4m7s
复制
如果结果中没有出现 kuboard-etcd-xxxxx 的容器,请在官网“常见错误中”查看关于缺少 Master Role 的描述。

3. 访问Kuboard



在浏览器中打开链接 http://192.168.80.125:30080
输入初始用户名和密码,并登录
用户名:admin
密码:Kuboard123

4. 数据高可用



Kuboard V3 依赖于 etcd 提供数据的持久化服务,在当前的安装方式下,kuboard-etcd 的存储卷被映射到宿主机节点的 hostPath (/usr/share/kuboard/etcd 目录);
为了确保每次重启,etcd 能够加载到原来的数据,以 DaemonSet 的形式部署 kuboard-etcd,并且其容器组将始终被调度到 master 节点,因此,您有多少个 master 节点,就会调度多少个 kuboard-etcd 的实例;
某些情况下,您的 master 节点只有一个或者两个,却仍然想要保证 kubuoard-etcd 的高可用,此时,您可以通过为一到两个 worker 节点添加 k8s.kuboard.cn/role=etcd 的标签,来增加 kuboard-etcd 的实例数量;
如果您已经安装了 Kuboard V3,通过此方式调整 etcd 数量时,需要按照如下步骤执行,否则 etcd 将不能正常启动:
执行
kubectl delete daemonset kuboard-etcd -n kuboard
复制
为节点添加标签,执行
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
复制
建议 etcd 部署的数量为 奇数。

5. 添加新的集群



默认情况下,会将部署kuboard的k8s集群加入管理;
Kuboard v3 是支持 Kubernetes 多集群管理的,在 Kuboard v3 的首页里,点击 添加集群 按钮,在向导的引导下可以完成集群的添加;
向 Kuboard v3 添加新的 Kubernetes 集群时,请确保:
您新添加集群可以访问到当前集群 Master 节点 内网IP 的 30080 TCP、30081 TCP、30081 UDP 端口;
如果您打算新添加到 Kuboard 中的集群与当前集群不在同一个局域网,请咨询 Kuboard 团队,帮助您解决问题。

6. 卸载



执行 Kuboard v3 的卸载
kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
复制
清理遗留数据
在 master 节点以及带有 k8s.kuboard.cn/role=etcd 标签的节点上执行
rm -rf usr/share/kuboard
复制

7. 升级-K8S部署方式



采用不同方式安装,则采用不同方式进行升级。
K8S部署方式升级,直接修改 kuboard 名称空间下名称为 kuboard-v3 的 Deployment 的镜像版本号为最新的版本号,然后等待片刻即可。
查看kuboard下的pod
[root@k8s3-master ~]# kubectl get pod -n kuboard
NAME READY STATUS RESTARTS AGE
kuboard-agent-2-8465b87b88-z6jb5 1/1 Running 0 66m
kuboard-agent-594497b96d-cdcr9 1/1 Running 1 (66m ago) 66m
kuboard-etcd-xrkh5 1/1 Running 0 67m
kuboard-questdb-59d446948-d5pcc 1/1 Running 0 66m
kuboard-v3-56b4b954c9-bgkrh 1/1 Running 0 67m
复制
更新deployment kuboard-v3的image版本
[root@k8s3-master ~]# kubectl set image deployment/kuboard-v3 kuboard=eipwork/kuboard:v3.3.0.7 -n kuboard
deployment.apps/kuboard-v3 image updated
复制
确认升级版本
可通过kuboard界面查看升级后的版本

8. 参考



https://kuboard.cn/install/v3/install-in-k8s.html#%E5%AE%89%E8%A3%85
https://kuboard.cn/install/v3-upgrade.html#%E5%A6%82%E6%9E%9C%E4%BB%A5-docker-run-%E8%BF%90%E8%A1%8C-kuboard
复制
旨在交流,不足之处,还望抛砖。
作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx: landnow。
