Kuboard导入及监控 example 微服务

前提

必须具备如下条件:

  • Kubernetes 集群
  • 导入 example 微服务时,要求 Kubernetes 集群版本不低于 1.14.0 重要
  • 已在集群中安装 Kuboard

创建存储资源

example中用到了存储卷声明,请在 Kuboard 中 创建存储类,否则不能完成 example 的导入操作。

许多网友自己搭建 NFS 测试环境,再创建 NFS存储类,经常碰到 access denied 这类权限问题。为了帮助大家更快地完成 NFS 测试环境搭建,Kuboard提供了一篇NFS相关的简明文档,请参考 搭建NFS Server

创建名称空间

创建新的名称空间,用来导入 example。可参考 创建名称空间

假设已经进入了 Kuboard 名称空间界面,如下图所示:

导入 example

(1)下载 kuboard_example.yaml 文件

在 Kuboard 中,无需手写 yaml 文件,此 yaml 文件的内容生成步骤如下:

(2)点击导入工作负载按钮

Kuboard导入工作负载

(3)点击上传文件按钮

并选择刚才下载的export_example.yaml文件

Kuboard导入选择文件

(4)点击下一步

默认选择所有的工作负载

Kuboard导入选择工作负载

(5)点击下一步

默认选择所有要导入的配置,example中没有使用到配置信息

Kuboard导入选择配置

(6)点击下一步

默认选择所有Secrets

Kuboard导入选择Secrets

(7)点击下一步

调整存储卷参数,填写表单:

字段名称 填写内容 说明
数据卷类型 db-example-storage NFS:容器组直连NFS
存储卷声明:容器组使用存储卷声明
是否新建存储卷声明 创建新存储卷声明 使用已有存储卷声明:可以使用事先创建好的存储卷声明
创建新存储卷声明:可以创建新存储卷声明
分配模式 动态分配
读写模式 可被多节点读写 只能被单节点读写、可被多节点只读、可被多节点读写
总量 2Gi 2Gi代表 2G空间

Kuboard导入调整存储卷参数

(8)点击下一步

调整互联网入口参数,填写表单:

字段名称 填写内容 说明
cloud-eureka域名 cloud-eureka.example.demo.eip.work 使用自己的域名
在测试环境建议使用域名格式:workloadname.namespace-name.cluster-name.domain.com

该域名应该解析到worker节点的外网地址,或者worker节点 80/443 端口对应负载均衡服务器的外网地址
| web-example | web-example.example.demo.eip.work | |

Kuboard导入调整互联网入口参数

(9)点击下一步

Kuboard导入审核

(10)点击确定

Kuboard导入确定

(11)点击应用

Kuboard导入应用

(12)点击完成

Kuboard导入完成

(13)点击已完成

可再名称空间中查看到刚才导入的 example 的所有工作负载及存储卷声明

Kuboard导入信息总览

验证 web-example

(1)点击工作负载 web-example

Kuboard web工作负载

点击互联网入口中的域名http://web-example.example.demo.eip.work

显示 Example 部署成功

Kuboard example部署成功

web-example容器的日志中会出现如下异常,错误原因是,example使用了一个监控套件,该监控套件要求将容器注册到monitor-eureka中,当下我们并没有安装该监控套件。此错误并不影响 example 程序的使用。暂时忽略该异常。

[DiscoveryClient-InstanceInfoReplicator-0] WARN com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient - Request execution failed with message: java.net.UnknownHostException: monitor-eureka
[DiscoveryClient-InstanceInfoReplicator-0] WARN com.netflix.discovery.DiscoveryClient - DiscoveryClient_WEB-ADMIN/web-example-7f668c75db-j7ncx - registration failed Cannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
        at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
        at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
        at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
        at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
        at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
        at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829)
        at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

监控 example

必须具备如下条件:

已配置了 NFS StorageClass
使用 kuboard-user 这个 ServiceAccount 登录 Kuboard 界面,kuboard-user

https://www.kuboard.cn/learning/k8s-intermediate/persistent/storage-class.html

https://www.kuboard.cn/install/install-dashboard.html#获取token

安装监控套件

(1)进入 Kuboard 界面后,点击右上角的设置按钮(圆形图标),然后在左侧菜单中导航到 Kuboard --> 套件,如下图所示:

Kuboard 套件

(2)点击图中的查找并安装按钮;

可以查询到当前套件仓库中的可选套件,如下图所示:

当前只提供了全局资源层监控套件,后续将逐渐提供更丰富的套件功能。

Kuboard 查找并安装套件

(3)点击所选择套件对应的安装按钮,可将套件所需资源从仓库中加载到您自己的 Kubernetes 集群,并进入该套件的详情页面,如下图所示:

Kuboard 全局资源层监控套件

(4)点击 套件参数 Tab 页

  • 套件参数Tab 页中,调整参数;
  • 按照额外步骤的提示,执行安装前的必须动作,并勾选确认已完成按钮
  • 点击保存按钮

如下图所示:

Kuboard 套件参数

(5)在套件参数页完成保存后,将自动进入安装脚本页,如下图所示:

Kuboard 安装脚本

(6)点击安装按钮,进入工作负载导入界面,将套件所需的Deployment/Service/ClusterRole等对象导入到您的 Kubernetes 集群中,如下图所示:

Kuboard 工作负载导入

(7)请按向导提示,完成套件所依赖对象的导入;

本文不详细描述此导入过程,请在向导的引导下完成。
关于第五步,调整存储卷参数,特别说明如下:

  • 建议为monitor-grafana/monitor-prometheus分别创建新的存储卷声明,需要事先已经创建好了 StorageClass
  • 如果当前没有合适的存储类,为了测试套件的功能,也可以先选择emptyDir,之后再设置合适的存储卷(此时,容器组被删除后,所有的监控数据将丢失)

Kuboard 调整存储卷参数

(8)完成工作负载导入后,Kuboard 将自动进入套件的初始化页面

  • 初始化页面将检测所依赖工作负载的就绪情况,如下图所示:

Kuboard 检测依赖工作负载

所有被依赖的工作负载就绪之后,将展示初始化时所引用的资源,如下图所示:

Kuboard 展示引用资源

(9)点击初始化页面中的执行初始化按钮,Kuboard 将完成对 Grafana 的初始化动作,如下图所示:

Kuboard 初始化套件

点击确定后,套件详情页将展示该套件支持的扩展信息,如下图所示:

(10)Kuboard 套件详情

查看监控信息

完成此套件安装后,将在 Kuboard 的节点详情页、工作负载详情页显示对应的监控界面入口;

(1)节点详情页

节点详情页增加如下两个监控界面入口:

  • 节点资源监控
  • 节点监控(含节点上的容器组)

Kuboard 节点详情页监控入口

(2)工作负载详情页

工作负载详情页增加如下三个监控界面入口:

  • 容器组监控
  • 所在节点监控
  • 所在节点监控(含节点上的容器组)

Kuboard 工作负载详情页监控入口

直接访问 Grafana 界面

可能想要自定义 Grafana 的规则,比如告警通知、授权管理等,如果需要以管理员用户登录到 Grafana 界面,点击下图中的Grafana主页按钮,即可以当前登录 Kuboard 的用户登录到 Grafana:

Kuboard 工作负载详情页监控入口

关于如何通过 KuboardProxy 访问 Grafana 界面,以及如何实现 Grafana 与 Kuboard 的单点认证,请参考 KuboardProxy - Auth Proxy

开发者模式

在 Kuboard 套件的详情页面,可以点击开发者模式按钮,此时,可以修改 Kuboard 套件安装过程的各种脚本,如:

  • 增加套件参数
  • 修改 YAML 安装脚本
  • 修改初始化脚本、添加初始化所需资源
  • 添加扩展,修改扩展脚本,实现自定义逻辑
  • 修改套件的快速链接

如下图所示:

Kuboard 开发者模式

还可以将自己的套件提交到套件仓库。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/30/kuboard-import-and-monitor-example-microservice/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Kuboard导入及监控 example 微服务
前提 必须具备如下条件: Kubernetes 集群 导入 example 微服务时,要求 Kubernetes 集群版本不低于 1.14.0 重要 已在集群中安装 Kuboard 创建存储资源 exa……
<<上一篇
下一篇>>
文章目录
关闭
目 录