目前Kubernetes可视化工具如雨后春笋,数不胜数。接下来介绍一款非常美观的可视化工具
Kuboard免费版只有3个集群的权限,企业使用需要付费,出于学习的目标可以自己玩玩。kuboard外观比较美观,虽然没啥卵用。但是有集成ldap gitlab等相关功能,根据自己需求考虑即可,本文只是介绍玩法
Kuboard介绍
Kuboard 是一款专为 Kubernetes 设计的免费管理界面,兼容 Kubernetes 版本 1.13 及以上。Kuboard 每周发布一个 beta 版本,最长每月发布一个正式版本,经过两年的不断迭代和优化,已经具备多集群管理、权限管理、监控套件、日志套件等丰富的功能
特点
- 多种认证方式
Kuboard 可以使用内建用户库、gitlab / github 单点登录或者 LDAP 用户库进行认证,避免管理员将 ServiceAccount 的 Token 分发给普通用户而造成的麻烦。使用内建用户库时,管理员可以配置用户的密码策略、密码过期时间等安全设置 - 多集群管理
管理员可以将多个 Kubernetes 集群导入到 Kuboard 中,并且通过权限控制,将不同集群/名称空间的权限分配给指定的用户或用户组。 - 微服务分层展示
在 Kuboard 的名称空间概要页中,以经典的微服务分层方式将工作负载划分到不同的分层,更加直观地展示微服务架构的结构,并且可以为每一个名称空间自定义名称空间布局。 - 工作负载的直观展示
Kuboard 中将 Deployment 的历史版本、所属的 Pod 列表、Pod 的关联事件、容器信息合理地组织在同一个页面中,可以帮助用户最快速的诊断问题和执行各种相关操作。 - 工作负载编辑
Kuboard 提供了图形化的工作负载编辑界面,用户无需陷入繁琐的 YAML 文件细节中,即可轻松完成对容器的编排任务。支持的 Kubernetes 对象类型包括:Node、Namespace、Deployment、StatefulSet、DaemonSet、Secret、ConfigMap、Service、Ingress、StorageClass、PersistentVolumeClaim、LimitRange、ResourceQuota、ServiceAccount、Role、RoleBinding、ClusterRole、ClusterRoleBinding、CustomResourceDefinition、CustomResource 等各类常用 Kubernetes 对象, - 存储类型支持
在 Kuboard 中,可以方便地对接 NFS、CephFS 等常用存储类型,并且支持对 CephFS 类型的存储卷声明执行扩容和快照操作。 - 丰富的互操作性
可以提供许多通常只在 kubectl 命令行界面中才提供的互操作手段,例如:
1.Top Nodes / Top Pods
2.容器的日志、终端
3.容器的文件浏览器(支持从容器中下载文件、上传文件到容器)
4.KuboardProxy(在浏览器中就可以提供 kubectl proxy 的功能) - 套件扩展
1.资源层监控套件,基于 Prometheus / Grafana 提供 K8S 集群的监控能力,可以监控集群、节点、工作负载、容器组等各个级别对象的 CPU、内存、网络、磁盘等资源的使用情况;
2.日志聚合套件,基于 Grafana / Loki / Promtail 实现日志聚合;
3.存储卷浏览器,查看和操作存储卷中的内容; - 告警配置
可以通过界面直接配置资源层监控套件发送告警消息:
1.支持邮件、微信发送告警消息;
2.支持告警路由配置;
3.支持告警规则配置等; - 操作审计
Kuboard 支持操作审计的功能:
1.审计用户通过 Kuboard 界面和 Kuboard API 执行的操作;
2.自定义审计规则;
官方文档地址:Kuboard_Kubernetes教程_K8S安装_管理界面 安装文档地址:安装 Kubernetes 多集群管理工具 - Kuboard v3 | Kuboard
Kuboard安装
目前Kuboard兼容的版本如下
同样部署方式支持Docker和Kubernetes,并且也有和gitlab、GitHub集成版本
- Docker部署
- Kubernetes部署
用户认证支持以下三种
- 内置用户
- gitlab
- github
- Ldap
Docker部署方式是可以和Kubernetes不在同一个节点上,Kubernetes就是在同一个节点进行部署
目前官方推荐使用Docker部署,通过外网Kuboard链接到Kubernetes。并且使用内置用户的方式
安装 Kuboard v3 - 内建用户库 | Kuboard
我这里使用腾讯云的服务器部署Kuboard
mkdir -p /data/kuboard-data #创建数据存储目录
docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 17070:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://test.frps.cn:17070" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /data/kuboard-data:/data \
eipwork/kuboard:v3
#我这里将80端口更换为其它端口
#这里的内网IP同样可以写外网IP,也可以写域名
#将Kuboard Agent Server的端口10081/tcp映射到宿主机的10081端口
访问地址: test.frps.cn:17070
默认用户名:admin
默认密码:Kuboard123
接下来我们添加集群
连接kube-apiserver有两种方式,一种是安装agent,另外一种是直接使用.kubeconfig连接。那我这里就选择直接通过http的方式来连接
我这里已经将家里的apiserver映射到公网
[root@k8s-01 ~]# cat .kube/config
添加完成后我们可以看到已经就绪了
这里我们可以通过使用kuboard-admin 权限进入到集群
具体使用就可以看一下官方文档,不是很难
后续使用可以参考官方文档: 通过反向代理访问 Kuboard | Kuboard