# 安装 Kuboard v3 - kubernetes
在 K8S 中安装 Kuboard,主要考虑的问题是,如何提供 etcd 的持久化数据卷。建议的两个选项有:
- 使用 hostPath 提供持久化存储,将 kuboard 所依赖的 Etcd 部署到 Master 节点,并将 etcd 的数据目录映射到 Master 节点的本地目录;推荐
- 使用 StorageClass 动态创建 PV 为 etcd 提供数据卷;不推荐
如果使用此方法安装 Kuboard 碰到问题,强烈建议您使用 docker run 或者 static-pod 的方式安装 kuboard .
# 方法一:使用 hostPath 提供持久化
# 安装
执行 Kuboard v3 在 K8S 中的安装
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml # 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像 # kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
1
2
3定制参数
如果您想要定制 Kuboard 的启动参数,请将该 YAML 文件下载到本地,并修改其中的 ConfigMap
等待 Kuboard v3 就绪
执行指令
watch kubectl get pods -n kuboard
,等待 kuboard 名称空间中所有的 Pod 就绪,如下所示,如果结果中没有出现
kuboard-etcd-xxxxx
的容器,请查看 中关于缺少 Master Role
的描述。[root@node1 ~]# kubectl get pods -n kuboard NAME READY STATUS RESTARTS AGE kuboard-agent-2-65bc84c86c-r7tc4 1/1 Running 2 28s kuboard-agent-78d594567-cgfp4 1/1 Running 2 28s kuboard-etcd-fh9rp 1/1 Running 0 67s kuboard-etcd-nrtkr 1/1 Running 0 67s kuboard-etcd-ader3 1/1 Running 0 67s kuboard-v3-645bdffbf6-sbdxb 1/1 Running 0 67s
1
2
3
4
5
6
7
8
# 访问 Kuboard
在浏览器中打开链接
http://your-node-ip-address:30080
输入初始用户名和密码,并登录
- 用户名:
admin
- 密码:
Kuboard123
- 用户名:
浏览器兼容性
添加新的集群
- Kuboard v3 是支持 Kubernetes 多集群管理的,在 Kuboard v3 的首页里,点击 添加集群 按钮,在向导的引导下可以完成集群的添加;
- 向 Kuboard v3 添加新的 Kubernetes 集群时,请确保:
- 您新添加集群可以访问到当前集群 Master 节点
内网IP
的30080 TCP
、30081 TCP
、30081 UDP
端口; - 如果您打算新添加到 Kuboard 中的集群与当前集群不在同一个局域网,请咨询 Kuboard 团队,帮助您解决问题。
- 您新添加集群可以访问到当前集群 Master 节点
# 卸载
执行 Kuboard v3 的卸载
kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
1清理遗留数据
在 master 节点以及带有
k8s.kuboard.cn/role=etcd
标签的节点上执行rm -rf /usr/share/kuboard
1
# 方法二:使用 StorageClass 提供持久化
注意事项
刚接触 K8S 的同学,强烈建议您使用 内建用户库 的方式安装 Kuboard-v3,在 K8S 中安装 Kuboard v3 时,需要理解更复杂的端口映射方式、存储卷声明/存储类等概念。
# 安装
获取部署 Kuboard 所需的 YAML 文件:
curl -o kuboard-v3.yaml https://addons.kuboard.cn/kuboard/kuboard-v3-storage-class.yaml
1编辑
kuboard-v3.yaml
文件中的配置,该部署文件中,有两处配置必须修改:KUBOARD_ENDPOINT
--- apiVersion: v1 kind: ConfigMap metadata: name: kuboard-v3-config namespace: kuboard data: # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-built-in.html # [common] KUBOARD_ENDPOINT: 'http://your-node-ip-address:30080' KUBOARD_AGENT_SERVER_UDP_PORT: '30081' KUBOARD_AGENT_SERVER_TCP_PORT: '30081'
1
2
3
4
5
6
7
8
9
10
11
12storageClassName
volumeClaimTemplates: - metadata: name: data spec: # 请填写一个有效的 StorageClass name storageClassName: please-provide-a-valid-StorageClass-name-here accessModes: [ "ReadWriteMany" ] resources: requests: storage: 5Gi
1
2
3
4
5
6
7
8
9
10
部署到 Kubernetes 集群
kubectl create -f kuboard-v3.yaml
1
# 访问 Kuboard
在浏览器中打开链接
http://your-node-ip-address:30080
输入初始用户名和密码,并登录
- 用户名:
admin
- 密码:
Kuboard123
- 用户名:
浏览器兼容性
# 卸载
执行 Kuboard v3 的卸载
kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3-storage-class.yaml
1
# 备注
此 YAML 文件向 Kubernetes 中部署了一个三副本的 StatefulSet kuboard-etcd
和一个单副本的 Deployment kuboard-v3
;其中 Deployment kuboard-v3
暂时不支持多副本,请保持其 replicas 字段为 1,将在后续的版本升级中解决 kuboard-v3
多副本部署的问题。