opscart/opscart-k8s-watcher

GitHub: opscart/opscart-k8s-watcher

一款只读、无 agent 的 Kubernetes 运维智能仪表板,聚合成本、安全、浪费和故障事件并按优先级提示应该先修复什么。

Stars: 3 | Forks: 0

# OpsCart Kubernetes Watcher **Kubectl 展示资源。Lens 展示状态。OpsCart 展示真正需要您关注的内容。** [![Version](https://img.shields.io/badge/version-v1.0.0-blue)](https://github.com/opscart/opscart-k8s-watcher/releases) [![Go](https://img.shields.io/badge/go-1.21+-00ADD8)](https://go.dev) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Docker](https://img.shields.io/badge/docker-ghcr.io%2Fopscart-blue)](https://ghcr.io/opscart/opscart-dashboard) [![Trivy](https://img.shields.io/badge/trivy-0%20CVEs-success)](https://trivy.dev) ✅ **只读**  ·  ✅ **无需 agent**  ·  ✅ **无需云凭证**  ·  ✅ **30 秒内部署** - ① 关键问题 - ② 需要修复的前 5 件事 - ③ War Room - ④ 成本分析 ![Dashboard Preview](https://static.pigsec.cn/wp-content/uploads/repos/cas/c1/c163ec7a4483372670ee2de1850afbad216dd3b13b54e3a691086e8ddaf81776.png) ## 哪里出了问题?哪里浪费了资金?我应该先修复什么? OpsCart 会持续分析您的 Kubernetes 集群,并呈现那些值得关注的操作风险 —— 且无需触碰生产环境。 大多数 Kubernetes 工具只展示集群状态。 OpsCart 会持续分析涵盖成本、安全、浪费和可靠性方面的操作风险,然后优先处理最值得关注的问题。 ### 为什么选择 OpsCart? ``` Lens shows resources. Grafana shows metrics. kubectl shows objects. OpsCart shows what deserves attention. ``` OpsCart 是位于 `kubectl` 和全功能可观测性平台之间的运营智能层。它汇总了涵盖运营、成本、安全和浪费等维度的风险 —— 然后确定优先修复的内容。 **已在以下真实集群环境中使用:** - 200+ 运行中的 pod - 25+ namespace - 多节点池 - 企业级 RBAC 环境 ## War Room 旗舰功能。在一个界面中展示集群中的每一个关键事件: - 🔴 **CrashLoopBackOff pod** — 包含重启次数和运行时长 - 🟠 **ImagePullBackOff 失败** — 包含可直接复制的 `kubectl describe` 命令 - 🔴 **OOMKilled 容器** — 内存溢出事件 - 🟡 **未受保护的 namespace** — 未定义 NetworkPolicy - 🟡 **孤立的 PVC** — 产生存储费用但没有消费该存储的 pod 每个问题都包含严重程度、namespace、运行时长,以及用于排查的 `kubectl` 命令。 ## 🚀 30 秒内部署 ### 集群内部署(推荐) ``` kubectl apply -f https://raw.githubusercontent.com/opscart/opscart-k8s-watcher/main/deploy/dashboard.yaml kubectl port-forward -n opscart-system svc/opscart-dashboard 8080:80 open http://localhost:8080 ``` 以带有只读 ClusterRole 的 Deployment 方式运行。可通过一条命令移除:`kubectl delete -f deploy/dashboard.yaml`。 ### 本地二进制文件 ``` git clone https://github.com/opscart/opscart-k8s-watcher.git cd opscart-k8s-watcher go build -o opscart-dashboard ./cmd/opscart-dashboard ./opscart-dashboard --cluster my-cluster --port 8080 ``` ### Docker ``` docker run -p 8080:8080 \ -v ~/.kube:/root/.kube \ ghcr.io/opscart/opscart-dashboard:v1.0.0 ``` ### 用于终端工作流的 CLI ``` go build -o opscart-scan ./cmd/opscart-scan ./opscart-scan emergency --cluster prod # War Room from terminal ./opscart-scan security --cluster prod # CIS scoring ./opscart-scan waste --cluster prod # Find idle resources ./opscart-scan cloud-costs --cluster prod # Azure cost analysis ``` ## 🛡️ 专为安全敏感环境打造 OpsCart 旨在直接部署在生产环境中,而不会引起平台团队的担忧。 | 属性 | 详情 | |----------|--------| | **基础镜像** | `scratch` — 无操作系统、无 shell、无包管理器 | | **镜像大小** | ~50 MB | | **用户** | 非 root 用户 (UID 65534) | | **二进制文件** | 静态编译,`CGO_ENABLED=0`,`-trimpath` | | **CVE 扫描** | 0 个漏洞 (Trivy) | | **集群权限** | 只读 ClusterRole(仅限 `get`、`list`) | | **Pod exec 权限** | 无 | | **Secret 访问权限** | 无 | | **外部调用** | 无(无遥测,无回传数据) | | **云 API 调用** | 无(Azure 定价在构建时嵌入) | **您可以自行审计:** ``` trivy image ghcr.io/opscart/opscart-dashboard:v1.0.0 kubectl describe clusterrole opscart-dashboard docker history ghcr.io/opscart/opscart-dashboard:v1.0.0 ``` ## 🧠 OpsCart 能检测到什么 ### 操作风险 每一个需要人工关注的问题,按类型分组并进行优先级排序: - CrashLoopBackOff、OOMKilled、ImagePullBackOff pod - 未受保护的 namespace(缺少 NetworkPolicy) - 孤立的 PVC(有存储但无消费 pod) - 副本数为零的 Deployment - 过时的 job 和批处理工作负载 ### 成本智能 读取 Kubernetes 节点标签,查询 Azure 零售价,并按比例将成本分配给各个 namespace。 - 40+ VM SKU(B/D/E/F/L 系列),包含 Spot 和按需实例 - 预留实例节省(1年/3年) - 每个 Deployment 的成本明细 - 15+ Azure 区域乘数 **无需 Azure 凭证。** 定价数据已直接嵌入到二进制文件中。 ### 安全态势 基于 CIS Kubernetes Benchmark v1.8 评分,并结合环境感知分析。将**可操作的问题**与**符合预期的底层基础设施**配置(CNI、CSI、监控)区分开来。 ### 浪费检测 分析了 9 种资源类型,仅提供建议 —— **绝不修改集群**。 ## 🆚 与其他工具对比 | 工具 | 展示内容 | OpsCart 的区别 | |------|-------|---------------------| | **kubectl** | 资源 | OpsCart 会划分优先级 | | **Lens** | 集群状态 | OpsCart 会聚合风险 | | **k9s** | 实时 pod | OpsCart 会解释影响 | | **Datadog / New Relic** | 指标 + 日志 | OpsCart 无需 agent | | **Kubecost** | 仅详细成本 | OpsCart 将成本与风险关联 | OpsCart 并非要替代这些工具 —— 它是一个操作分流层,用于告诉您应该首先关注什么。 ## 📋 CLI 参考 | 命令 | 描述 | |---------|-------------| | `emergency` | War Room — 当前出故障的内容 | | `security` | CIS Benchmark 安全态势 | | `waste` | 孤立、空闲和僵尸资源 | | `cloud-costs` | 实时 Azure 成本分析 | | `network` | Network policy 缺口分析 | | `costs` | 资源份额成本分配 | | `report` | 全面的集群健康 HTML 报告 | | `resources` | 集群资源清单 | **常用 flag:** ``` --cluster CLUSTER # Target cluster context --all-clusters # Scan all configured clusters --format html|json|table # Output format --namespace NS # Scope to single namespace ``` ## 🗺️ 路线图 **v1.0** ✅ — 操作智能仪表板 - 需要修复的前 5 件事 - War Room 专属面板 - 关键问题作为主要 KPI - 侧边栏:概览 → 运营 → 分析 - 信任优先架构 **v1.1** — 深度分流 - 支持展开/折叠的问题分组 - War Room 深入下钻(按 namespace、严重程度、类型过滤) - 推荐操作,支持一键排查 - 使用 Lucide 图标替换表情符号 **v1.2** — 历史智能 - 基于 SQLite 的历史记录(随时间变化的关键问题、成本趋势) - 7/30/90 天对比视图 - “本周成本增加了 18%”等趋势信号 - 针对新关键问题的 Slack/Teams 告警 **v2.0** — 多云 + 生态系统 - AWS 和 GCP 成本分析 - Helm chart 分发 - Prometheus 集成(可选) - 面向仪表板用户的多租户和 RBAC ## 📅 版本历史 | 版本 | 日期 | 亮点 | |---------|------|------------| | **v1.0.0** | 2026年6月 | **操作智能仪表板** — 需要修复的前 5 件事、War Room 专属面板、信任优先定位、全面重构 | | v0.9.0 | 2026年6月 | 包含 5 个标签页的完整仪表板 | | v0.8.0 | 2026年6月 | 集群内实时的 FinOps 仪表板 | | v0.7.0 | 2026年6月 | 带有内嵌 Azure 定价的 `cloud-costs` 命令 | | v0.6.0 | 2026年5月 | 资源份额成本分配 | | v0.5.x | 2026年2月 | 浪费检测(9 种类型)、HTML 报告 | | v0.4.0 | 2026年2月 | Network policy 缺口分析 | | v0.3.0 | 2026年2月 | HTML 报告生成、CIS 评分 | | v0.2.0 | 2026年2月 | 多集群支持 | | v0.1.0 | 2026年1月 | 初始版本 | ## ⚠️ 免责声明 本工具为安全意识工具 — **不用于正式的合规审计**。如需官方的 CIS 合规性检查,请使用 [kube-bench](https://github.com/aquasecurity/kube-bench)。成本估算基于 Azure 公开零售定价 — 实际成本会因 EA/MACC 协议而异。 ## 🤝 贡献 欢迎提交 issue、PR 和功能请求。专为 Kubernetes 社区打造。 **作者:** Shamsher Khan — [IEEE 高级会员](https://ieee.org) · [opscart.com](https://opscart.com) · [DZone 核心会员](https://dzone.com/users/shamsher_khan) **许可证:** MIT
标签:EVTX分析, Go, Ruby工具, 互联网扫描, 可视化仪表盘, 子域名突变, 成本管理, 故障排查, 日志审计, 请求拦截, 运维监控