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)点击导入工作负载按钮
(3)点击上传文件按钮
并选择刚才下载的export_example.yaml
文件
(4)点击下一步
默认选择所有的工作负载
(5)点击下一步
默认选择所有要导入的配置,example中没有使用到配置信息
(6)点击下一步
默认选择所有Secrets
(7)点击下一步
调整存储卷参数,填写表单:
字段名称 | 填写内容 | 说明 |
---|---|---|
数据卷类型 | db-example-storage | NFS:容器组直连NFS 存储卷声明:容器组使用存储卷声明 |
是否新建存储卷声明 | 创建新存储卷声明 | 使用已有存储卷声明:可以使用事先创建好的存储卷声明 创建新存储卷声明:可以创建新存储卷声明 |
分配模式 | 动态分配 | |
读写模式 | 可被多节点读写 | 只能被单节点读写、可被多节点只读、可被多节点读写 |
总量 | 2Gi | 2Gi代表 2G空间 |
(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 | |
(9)点击下一步
(10)点击确定
(11)点击应用
(12)点击完成
(13)点击已完成
可再名称空间中查看到刚才导入的 example 的所有工作负载及存储卷声明
验证 web-example
(1)点击工作负载 web-example
点击互联网入口中的域名http://web-example.example.demo.eip.work
显示 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 --> 套件,如下图所示:
(2)点击图中的查找并安装按钮;
可以查询到当前套件仓库中的可选套件,如下图所示:
当前只提供了全局资源层监控套件,后续将逐渐提供更丰富的套件功能。
(3)点击所选择套件对应的安装按钮,可将套件所需资源从仓库中加载到您自己的 Kubernetes 集群,并进入该套件的详情页面,如下图所示:
(4)点击 套件参数 Tab 页
- 在套件参数Tab 页中,调整参数;
- 按照额外步骤的提示,执行安装前的必须动作,并勾选确认已完成按钮
- 点击保存按钮
如下图所示:
(5)在套件参数页完成保存后,将自动进入安装脚本页,如下图所示:
(6)点击安装按钮,进入工作负载导入界面,将套件所需的Deployment/Service/ClusterRole
等对象导入到您的 Kubernetes 集群中,如下图所示:
(7)请按向导提示,完成套件所依赖对象的导入;
本文不详细描述此导入过程,请在向导的引导下完成。
关于第五步,调整存储卷参数,特别说明如下:
- 建议为
monitor-grafana
/monitor-prometheus
分别创建新的存储卷声明,需要事先已经创建好了 StorageClass - 如果当前没有合适的存储类,为了测试套件的功能,也可以先选择
emptyDir
,之后再设置合适的存储卷(此时,容器组被删除后,所有的监控数据将丢失)
(8)完成工作负载导入后,Kuboard 将自动进入套件的初始化页面
- 初始化页面将检测所依赖工作负载的就绪情况,如下图所示:
所有被依赖的工作负载就绪之后,将展示初始化时所引用的资源,如下图所示:
(9)点击初始化页面中的执行初始化按钮,Kuboard 将完成对 Grafana 的初始化动作,如下图所示:
点击确定后,套件详情页将展示该套件支持的扩展信息,如下图所示:
(10)
查看监控信息
完成此套件安装后,将在 Kuboard 的节点详情页、工作负载详情页显示对应的监控界面入口;
(1)节点详情页
节点详情页增加如下两个监控界面入口:
- 节点资源监控
- 节点监控(含节点上的容器组)
(2)工作负载详情页
工作负载详情页增加如下三个监控界面入口:
- 容器组监控
- 所在节点监控
- 所在节点监控(含节点上的容器组)
直接访问 Grafana 界面
可能想要自定义 Grafana 的规则,比如告警通知、授权管理等,如果需要以管理员用户登录到 Grafana 界面,点击下图中的Grafana主页按钮,即可以当前登录 Kuboard 的用户登录到 Grafana:
关于如何通过 KuboardProxy 访问 Grafana 界面,以及如何实现 Grafana 与 Kuboard 的单点认证,请参考 KuboardProxy - Auth Proxy
开发者模式
在 Kuboard 套件的详情页面,可以点击开发者模式按钮,此时,可以修改 Kuboard 套件安装过程的各种脚本,如:
- 增加套件参数
- 修改 YAML 安装脚本
- 修改初始化脚本、添加初始化所需资源
- 添加扩展,修改扩展脚本,实现自定义逻辑
- 修改套件的快速链接
如下图所示:
还可以将自己的套件提交到套件仓库。
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/30/kuboard-import-and-monitor-example-microservice/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论