这篇文章Sentinel云原生K8S部署实战记录了以下过程
sentinel源码打包 编译生成docker镜像 通过k8s部署以及网关服务对接sentinel的过程
在这个过程中遇到了几个问题以及是如何解决的?
问题简介
日志目录问题
如何图形界面化管理云原生资源 -- kuboard
日志目录问题定位以及解决过程
使用场景
生成稳定版本tar包的过程

将tar包上传到行内使用openshif云原生部署

问题现象
pod始终启不来 查看pod的日志
/??/logs/csp/ 无权限访问异常
复制
分析问题
由报错信息可以初步得到结论:生成日志文件的时候 没有权限写入
so 将注意力放在sentinel日志文件这里
首先查看Dockerfile 确认docker容器中的启动用户在什么目录下是有权限的

发现docker容器内启动的话 在/app目录下是有权限访问的
那么如果日志文件在/app目录下生成 则不会报没有权限写入日志的问题
则初步判断 日志文件在非/app目录下生成了复制
查看sentinel源码的日志文件配置
发现在配置文件中的日志路径配置
logging.file=${user.home}/logs/csp/sentinel-dashboard.log
在当前用户目录下生成日志文件
我本地环境是mac系统mengfanxiao用户
所以在/Users/mengfanxiao/目录下生成该日志文件
那么我将
logging.file=${user.home}/logs/csp/sentinel-dashboard.log
修改成
logging.file=/app/logs/csp/sentinel-dashboard.log目录
启动jar包
发现在/Users/mengfanxiao/目录下还会生成另外两个日志文件
command-center.log
sentinel-record.log
既然这两个日志文件生成路径没有在配置文件中生成
那么则是在代码中写死的
全局搜索sentinel源码这2个日志复制




由此知道了 生成这2个日志文件还是在当前用户目录下生成的
所以这里需要修改成复制

截止目前生成的日志文件都写到了/app目录下
复制
解决问题
将日志输出目录写到/app目录下 然后重新打包、编译镜像、生成tar包、上传行内镜像库、通过openshift部署 启动pod查看sentinel启动日志成功了
问题原理分析简介
k8s启动docker容器 容器内默认是通过root用户启动的
openshift启动docker不支持用root用户启动 但在没有创建用户的情况下 就不能确定当前用户是谁
如果生成的日志文件目录在当前用户所在的目录下 所以就会出现问题
通过kuboard来图形界面化管理云原生
安装kuboard
docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 7777:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://192.168.43.21:7777" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /opt/docker/kuboard-data:/data \
swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3复制
访问dashboard
http://localhost:7777/kuboard/cluster
复制

通过agent方式配置k8s集群


手动启动agent服务
curl -k 'http://192.168.43.21:7777/kuboard-api/cluster/k8s-local/kind/KubernetesCluster/k8s-local/resource/installAgentToKubernetes?token=guv3lsUhuTf4G1RJYRpc3AWIaf5oEL7X' > kuboard-agent.yaml
kubectl apply -f ./kuboard-agent.yaml
"注意我这里修改了端口号80-->7777"复制
代理服务起来之后 k8s就可以访问kuboard了
通过kuboard查看k8s集群
可以看到sentinel容器
可以查看日志 可以通过ssh进入容器内部
相较于 Kubernetes Dashboard 等其他 Kubernetes 管理界面,Kuboard 的主要特点有
多种认证方式
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` 命令行界面中才提供的互操作手段,例如:
* Top Nodes / Top Pods
* 容器的日志、终端
* 容器的文件浏览器(支持从容器中下载文件、上传文件到容器)
* KuboardProxy(在浏览器中就可以提供 `kubectl proxy` 的功能)复制

套件扩展
Kuboard 提供了必要的套件库,使得用户可以根据自己的需要扩展集群的管理能力。当前提供的套件有:
* 资源层监控套件,基于 Prometheus Grafana 提供 K8S 集群的监控能力,可以监控集群、节点、工作负载、容器组等各个级别对象的 CPU、内存、网络、磁盘等资源的使用情况;
* 日志聚合套件,基于 Grafana Loki Promtail 实现日志聚合;
* 存储卷浏览器,查看和操作存储卷中的内容;复制

告警配置
可以通过界面直接配置资源层监控套件发送告警消息:
* 支持邮件、微信发送告警消息;
* 支持告警路由配置;
* 支持告警规则配置等;复制

操作审计
Kuboard 支持操作审计的功能:
* 审计用户通过 Kuboard 界面和 Kuboard API 执行的操作;
* 自定义审计规则;复制

文章转载自平凡人笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1318次阅读
2025-03-13 11:40:53
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1297次阅读
2025-03-06 16:45:38
2025年2月国产数据库大事记
墨天轮编辑部
1018次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
899次阅读
2025-03-06 11:40:20
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
462次阅读
2025-03-13 14:38:19
AI的优化能力,取决于你问问题的能力!
潇湘秦
436次阅读
2025-03-11 11:18:22
优炫数据库成功应用于国家电投集团青海海南州新能源电厂!
优炫软件
344次阅读
2025-03-21 10:34:08
达梦数据与法本信息签署战略合作协议
达梦数据
297次阅读
2025-03-06 09:26:57
国产化+性能王炸!这套国产方案让 3.5T 数据 5 小时“无感搬家”
YMatrix
283次阅读
2025-03-13 09:51:26
磐维数据库对外门户全新升级!
磐维数据库
244次阅读
2025-03-04 15:32:59