十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Kubernetes部署Traefik Log Dashboard:从Helm Chart到IngressRoute的生产级配置完全指南

Kubernetes部署Traefik Log Dashboard:从Helm Chart到IngressRoute的生产级配置完全指南 Kubernetes部署Traefik Log Dashboard从Helm Chart到IngressRoute的生产级配置完全指南【免费下载链接】traefik-log-dashboardA real-time dashboard for analyzing Traefik logs in UI with IP geolocation, status code analysis, and service metrics. Built with React (Shadcn UI) and Node.js.项目地址: https://gitcode.com/gh_mirrors/tr/traefik-log-dashboardTraefik Log Dashboard 是一个实时分析 Traefik 日志的仪表盘项目支持 IP 地理定位、状态码分析和实时服务指标可视化。本文将带你用 Kubernetes 完成生产级部署从 Helm Chart 一键安装到 IngressRoute 路由与 TLS 证书配置再到资源限制、持久化存储和多 Agent 扩展。部署前准备架构与前置条件 先理解它的工作方式配置才会不跑偏AgentGo 后端端口 5000只读挂载节点上的 Traefik 日志目录hostPath解析日志并通过 REST API 暴露指标DashboardNode.js 前端端口 3000面向用户的可视化界面所有 API 请求都代理给 AgentIngressRoute仅暴露 DashboardAgent 走 ClusterIP 集群内网不直接对外。Agent (Go, :5000) ◄──── Dashboard (Node.js, :3000) hostPath: /var/log/traefik PVC: /data (SQLite, 1Gi) ClusterIP svc:5000 ClusterIP svc:3000 └── IngressRoute (你的域名)前置条件清单条件说明Kubernetes 1.24已配置好kubectlTraefik 作为 Ingress 控制器已安装IngressRouteCRDJSON 格式访问日志写入节点上的固定路径默认/var/log/traefik⚠️ Agent 必须以Deployment或DaemonSet运行在Traefik 写日志的那个节点上。如果 Traefik 本身是 DaemonSet建议把 Agent 也改成 DaemonSet。方式一Helm Chart 一键部署推荐⚡项目内置 Helm Chart目录为charts/traefik-log-dashboard核心可调参数集中在values.yaml。第一步生成认证令牌openssl rand -hex 32第二步执行安装helm install traefik-log-dashboard charts/traefik-log-dashboard \ --set auth.token上一步生成的令牌 \ --set ingress.hostdashboard.yourdomain.com \ --set agent.logHostPath/var/log/traefik第三步可选用 values 文件定制环境# my-values.yaml auth: token: your-secret-token agent: logHostPath: /var/log/traefik persistence: size: 64Mi resources: requests: cpu: 100m memory: 128Mi limits: cpu: 1000m memory: 1Gi dashboard: config: agentName: Production maxLogsDisplay: 2000 ingress: host: dashboard.example.com tls: certResolver: letsencrypthelm install traefik-log-dashboard charts/traefik-log-dashboard -f my-values.yaml高频参数速查对应charts/traefik-log-dashboard/values.yamlauth.tokenAgent 与 Dashboard 共享的认证令牌必填agent.logHostPath节点上 Traefik 日志目录默认/var/log/traefikingress.host/ingress.tls.certResolver对外域名与证书解析器agent.persistence.size/dashboard.persistence.size两块 PVC 容量默认 64Mi / 1Ginamespace默认traefik-dashboard与createNamespace命名空间自动创建。方式二Kustomize 原生清单部署 如果不喜欢 Helm项目k8s/目录提供了完整的 Kustomize 清单由k8s/kustomization.yaml统一编排 11 个资源克隆仓库需要 clone 时使用git clone https://gitcode.com/gh_mirrors/tr/traefik-log-dashboard进入k8s/目录修改三处关键文件k8s/secret.yaml把auth-token换成openssl rand -hex 32生成的值k8s/ingressroute.yaml修改Host(...)匹配规则为你的域名按需调整certResolverk8s/agent-deployment.yaml确认hostPath.path指向节点上真实的 Traefik 日志目录一条命令部署全部资源kubectl apply -k k8s会自动创建traefik-dashboard命名空间、认证 Secret、Agent/Dashboard 两个 ConfigMap、两块 PVC、两个 Deployment ClusterIP Service以及 IngressRoute。关键配置详解生产级要点 ✅认证令牌一个 Secret 打通两个组件Agent 和 Dashboard 通过同一个共享令牌做 API 认证。清单中它存放在 Secrettraefik-dashboard-auth再分别以环境变量TRAEFIK_LOG_DASHBOARD_AUTH_TOKENAgent和AGENT_1_TOKENDashboard注入见k8s/agent-deployment.yaml与k8s/dashboard-deployment.yaml。生产环境务必使用足够长的随机令牌避免把真实令牌提交进代码库。日志路径与只读挂载Agent 以readOnly: true挂载hostPath默认路径/var/log/traefik。日志文件约定见k8s/configmap-agent.yamlTRAEFIK_LOG_DASHBOARD_ACCESS_PATH/logs/access.log访问日志TRAEFIK_LOG_DASHBOARD_ERROR_PATH/logs/traefik.log错误日志TRAEFIK_LOG_DASHBOARD_LOG_FORMATjson持久化存储两块 PVC 各司其职组件挂载路径用途默认容量Agent/data记录日志读取位置的.position文件64MiDashboard/dataSQLite 数据库指标缓存等1Gi分别定义在k8s/agent-pvc.yaml和k8s/dashboard-pvc.yamlHelm 中对应agent.persistence与dashboard.persistence。资源限制与健康探针两个 Deployment 都做了生产级加固资源Agent 请求 50m CPU / 64Mi 内存上限 500m / 512MiDashboard 请求 50m / 128Mi上限 500m / 512Mi探针Agent 与 Dashboard 都配置了 liveness readiness 探针Agent 探测/api/logs/statusDashboard 探测/Go 运行时调优Agent 设置GOGC50、GOMEMLIMIT500MiB控制内存峰值安全上下文Agent 以非 root 用户UID 1000运行启动顺序Dashboard 带wait-for-agentinit 容器轮询 Agent 健康接口确保后端就绪后才拉起前端。多 Agent一个看板监控多个 Traefik 实例在 Dashboard 的 ConfigMapk8s/configmap-dashboard.yaml中追加环境变量即可data: AGENT_1_NAME: Production AGENT_1_URL: http://traefik-agent:5000 AGENT_2_NAME: Staging AGENT_2_URL: http://staging-agent.other-namespace:5000Helm 用户可通过自定义dashboard.config注入。IngressRoute 路由与 TLS 配置 IngressRoute 是访问入口的核心模板见k8s/ingressroute.yaml关键三要素spec: entryPoints: - websecure routes: - match: Host(traefik-dashboard.example.com) # 改成你的域名 kind: Rule services: - name: traefik-dashboard port: 3000 tls: certResolver: letsencrypt # 改成你的证书解析器排查技巧确认 CRD 存在kubectl get crd ingressroutes.traefik.io没有域名/证书时可用端口转发快速体验kubectl -n traefik-dashboard port-forward svc/traefik-dashboard 3000:3000 # 浏览器打开 http://localhost:3000部署验证与常见问题排查 ️验证三步走kubectl -n traefik-dashboard get pods -w kubectl -n traefik-dashboard logs -f deploy/traefik-agent kubectl -n traefik-dashboard logs -f deploy/traefik-dashboard常见症状对照表症状排查方向Agent 反复CrashLoopBackOff确认hostPath在节点上存在且包含日志文件Dashboard init 容器卡住Agent 不健康先看 Agent 日志页面无日志数据确认 Traefik 以 JSON 格式写入配置的路径IngressRoute 不生效确认 Traefik CRD 已安装域名与match规则一致Agent 调度不到目标节点Traefik 若为 DaemonSet把 Agent 改为 DaemonSet 或用nodeSelector固定节点相关资源官方部署文档含完整步骤docs/content/docs/deployment/kubernetes.mdx原生清单入口k8s/kustomization.yamlHelm Chart 入口charts/traefik-log-dashboard/Chart.yamlAgent 服务源码agent/internal/routes/Docker Compose 替代方案非 K8s 环境docker-compose.yml至此你已掌握 Traefik Log Dashboard 在 Kubernetes 上的完整生产级部署路径Helm 一条命令起步原生清单精细控制IngressRoute 安全暴露配合探针、资源限制与持久化即可稳定运行。【免费下载链接】traefik-log-dashboardA real-time dashboard for analyzing Traefik logs in UI with IP geolocation, status code analysis, and service metrics. Built with React (Shadcn UI) and Node.js.项目地址: https://gitcode.com/gh_mirrors/tr/traefik-log-dashboard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表