opscart/opscart-k8s-watcher
GitHub: opscart/opscart-k8s-watcher
一款只读、无 agent 的 Kubernetes 运维智能仪表板,聚合成本、安全、浪费和故障事件并按优先级提示应该先修复什么。
Stars: 3 | Forks: 0
# OpsCart Kubernetes Watcher
**Kubectl 展示资源。Lens 展示状态。OpsCart 展示真正需要您关注的内容。**
[](https://github.com/opscart/opscart-k8s-watcher/releases)
[](https://go.dev)
[](LICENSE)
[](https://ghcr.io/opscart/opscart-dashboard)
[](https://trivy.dev)
✅ **只读** · ✅ **无需 agent** · ✅ **无需云凭证** · ✅ **30 秒内部署**
- ① 关键问题
- ② 需要修复的前 5 件事
- ③ War Room
- ④ 成本分析

## 哪里出了问题?哪里浪费了资金?我应该先修复什么?
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工具, 互联网扫描, 可视化仪表盘, 子域名突变, 成本管理, 故障排查, 日志审计, 请求拦截, 运维监控