将Kubernetes成本估算与CUR/FOCUS账单数据对齐
摘要
burn是一个零配置、人工智能驱动的CLI工具,可分析涵盖计算、存储、负载均衡器和GPU的Kubernetes集群成本,支持现货实例就绪性、Prometheus集成和Slack原生查询。
查看缓存全文
缓存时间: 2026/06/01 01:38
tanrikuluozlem/burn
来源:https://github.com/tanrikuluozlem/burn
burn
CI(https://github.com/tanrikuluozlem/burn/actions/workflows/ci.yml) 发布(https://github.com/tanrikuluozlem/burn/releases) Go 报告卡(https://goreportcard.com/report/github.com/tanrikuluozlem/burn) 许可证
你的 Kubernetes 集群正在烧钱,找出问题所在。
演示
无需部署代理、无需维护仪表板、无需配置 YAML。只需安装并运行。
观看演示(https://youtu.be/uGVvaKXeTf4)
为什么选择 burn
- 零配置 —
brew install,运行一条命令,立即获得答案。无需集群代理、无需持久化存储、无需配置文件。 - 全面成本覆盖 — 计算、存储、负载均衡器和GPU成本,实时云定价。
- AI 驱动 — 用自然英语提问,获得可直接复制的 kubectl 命令。
- Slack 原生 —
/burn即时成本报告,/burn ask "..."AI 分析。 - 云+本地 — 支持 AWS EKS、Azure AKS、GCP GKE 以及本地集群。
- Spot 就绪检测 — 识别哪些工作负载可以安全迁移到 spot 实例,实时折扣和中止率。
- Ingress LB 检测 — 同时检测 Service 和 Ingress 资源的负载均衡器,并去重主机名。
- 时间感知 —
--period 7d提供周平均值而非瞬时快照。
安装
# Homebrew
brew install tanrikuluozlem/burn/burn
# 升级
brew upgrade tanrikuluozlem/burn/burn
# 二进制文件
VERSION=$(curl -s https://api.github.com/repos/tanrikuluozlem/burn/releases/latest | grep tag_name | cut -d'"' -f4 | tr -d 'v') && \
curl -L "https://github.com/tanrikuluozlem/burn/releases/latest/download/burn_${VERSION}_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz
# Docker
docker pull ghcr.io/tanrikuluozlem/burn:latest
# Helm
git clone https://github.com/tanrikuluozlem/burn.git
helm install burn ./burn/charts/burn
# Go
go install github.com/tanrikuluozlem/burn/cmd/burn@latest
macOS: 如果遇到 Gatekeeper 警告,请运行:
sudo xattr -d com.apple.quarantine $(which burn)
快速开始
# 成本分解(无需 Prometheus)
burn analyze
# 使用 Prometheus(传入 Prometheus URL)
burn analyze --prometheus http://prometheus:9090
# 7天平均值
burn analyze --prometheus http://prometheus:9090 --period 7d
# 深入某个命名空间
burn analyze --prometheus http://prometheus:9090 --namespace argocd
# Spot 就绪检测
burn analyze --prometheus http://prometheus:9090 --spot
Spot 就绪检测
spot 就绪检测
每种实例类型的实时 spot 折扣和中止率。
AI 建议
获取集群范围或命名空间特定的建议:
burn analyze --prometheus http://prometheus:9090 --period 7d --ai
burn analyze --prometheus http://prometheus:9090 --namespace app-backend --ai
burn ask --prometheus http://prometheus:9090 "为什么 argocd 这么贵?"
示例:burn analyze --namespace app-backend --period 7d --ai
NAMESPACE: app-backend (3 个 Pod,每月 $17.19)
──────────────────────────────────
POD CPU 请求→实际 内存 请求→实际 每月成本
app-backend-deploy-0001 200m → <1m 256Mi → 9Mi $5.73
app-backend-deploy-0002 200m → <1m 256Mi → 9Mi $5.73
app-backend-deploy-0003 200m → <1m 256Mi → 128Mi $5.73
建议
───────────────
命名空间 app-backend 在 3 个 Pod 上每月花费 $17.19,但 CPU 效率
极低,仅约 0.1% — 每个 Pod 请求 200m CPU,而 p95 使用量
不足 0.31m。
[!!] 1. 使用 p95 数据调整 CPU 请求
app-backend-deploy-0001:p95 CPU 为 0.22m → 建议 1m(p95 的 1.5 倍)
app-backend-deploy-0002:p95 CPU 为 0.30m → 建议 1m(p95 的 1.5 倍)
app-backend-deploy-0003:p95 内存为 128Mi(效率 50%)— 保持原样
$ kubectl set resources deployment app-backend -n app-backend \
--requests=cpu=1m,memory=14Mi --limits=cpu=200m,memory=256Mi
[!!] 2. app-backend-ingress LB(每月 $19.71)比该命名空间成本还高
仅负载均衡器就已超过 $17.19 的计算成本。
如果仅用于内部,请切换为 ClusterIP 以消除 LB 成本。
$ kubectl patch svc app-backend-ingress -n app-backend \
-p '{"spec": {"type": "ClusterIP"}}'
[!] 3. 启用 VPA 推荐模式
通过持续的 p95 跟踪防止过度配置再次发生。
$ kubectl apply -f vpa-app-backend.yaml
用自然英语提问
提问演示
需要设置 ANTHROPIC_API_KEY 环境变量。
Slack 集成
将 burn 作为 Slack 机器人运行:
burn serve --port 8080 --prometheus http://prometheus:9090 --period 7d
| 命令 | 返回内容 |
|---|---|
/burn | 完整成本报告 — 节点、命名空间、闲置成本、LB、存储 |
/burn ns argocd | 命名空间级别的 Pod 分解 |
/burn ask "最大的浪费是什么?" | AI 分析及 kubectl 命令 |
Slack AI
Slack 设置
- 在 https://api.slack.com/apps 创建一个 Slack 应用
- 添加斜杠命令:
/burn→ 指向你的服务器 URL +/slack - 设置
SLACK_SIGNING_SECRET和ANTHROPIC_API_KEY环境变量 - 暴露服务器(例如测试用 ngrok,生产用负载均衡器)
本地集群和 GPU 集群
Burn 同样适用于本地集群和 GPU 集群。设置自定义资源费率:
burn analyze \
--cpu-price 0.05 \
--ram-price 0.008 \
--gpu-price 3.00 \
--storage-price 0.10
若未指定自定义定价,默认采用云等效费率。
工作原理
Kubernetes API → 节点、Pod、PVC、Service、Ingress
Prometheus → 实际 CPU 和内存用量(可选)
云定价 → 实时 VM、存储和 GPU 价格(AWS、Azure、GCP)
↓
成本引擎 → 计算、存储、负载均衡器、GPU、闲置检测
↓
CLI / Slack / AI 建议
定价来源
| 优先级 | 来源 | 何时使用 |
|---|---|---|
| 1 | AWS/Azure 定价 API | 存在 AWS 凭据 — 实时、区域感知 |
| 2 | 内置定价数据库 | 无凭据 — 600+ 个 AWS 实例、300+ 个 Azure 实例,每周更新 |
| 3 | 静态回退 | 未知实例类型 — 基于实例家族的估算 |
存储和负载均衡器成本在可用时从云 API 获取,否则使用静态回退。基于使用量的费用(数据处理、LCU)取决于流量大小,未包含在内。GPU 节点自动检测,并通过基于比率的方式分摊成本。
部署到 Kubernetes
Helm
git clone https://github.com/tanrikuluozlem/burn.git
helm install burn ./burn/charts/burn \
--set prometheus.url=http://prometheus:9090 \
--set schedule="0 9 * * 1-5"
CronJob(每日 Slack 报告)
apiVersion: batch/v1
kind: CronJob
metadata:
name: burn-report
spec:
schedule: "0 9 * * 1-5"
jobTemplate:
spec:
template:
spec:
containers:
- name: burn
image: ghcr.io/tanrikuluozlem/burn:latest
args:
- analyze
- --prometheus
- http://prometheus-server.monitoring:80
- --period
- 7d
- --ai
- --slack
env:
- name: ANTHROPIC_API_KEY
valueFrom:
secretKeyRef:
name: burn-secrets
key: anthropic-api-key
- name: SLACK_WEBHOOK_URL
valueFrom:
secretKeyRef:
name: burn-secrets
key: slack-webhook-url
restartPolicy: OnFailure
配置
| 变量 | 描述 | 用于哪些功能 |
|---|---|---|
ANTHROPIC_API_KEY | Claude API 密钥 | --ai、ask、serve |
SLACK_WEBHOOK_URL | Slack webhook URL | --slack |
SLACK_SIGNING_SECRET | Slack 应用签名密钥 | serve |
| 标志 | 描述 |
|---|---|
--cpu-price | 每核心每小时 CPU 成本(本地集群) |
--ram-price | 每 GiB 每小时内存成本(本地集群) |
--gpu-price | 每单元每小时 GPU 成本(本地集群) |
--storage-price | 每 GiB 每月存储成本(本地集群) |
--spot | 显示 spot 实例就绪详情 |
云集群自动使用实时定价。这些标志用于无法从云提供商获取定价的本地集群。
开发
make build # 构建二进制文件
make test # 运行测试
make lint # 运行 linter
许可证
Apache 2.0 — 详见 LICENSE 文件。
相似文章
Nvidia表示其新AI安全平台能在‘毫秒内’控制失控代理
Nvidia推出了Open Agent Safety Platform,旨在使用开源软件和专用硬件在毫秒内控制失控AI代理,得到了Anthropic、Microsoft和SpaceX等公司的支持。
只需合并Qwen3.6与3.8 27B即可以更少的token生成获得不错的性能
JetBrains 通过合并 Qwen3.6 和 Qwen3.8 27B 模型创建了一个非官方衍生版本,以在更少的 token 生成下实现不错的性能,并针对编码任务进行了优化。
vulkan: 融合 qwen4exp 的 SCALE -> SIGMOID -> SCALE -> hc_post 链由 fxgsell · PR #29520 · ggml-org/llama.cpp
此 PR 在 Vulkan 后端中融合了 qwen4exp 模型的操作链,以优化 llama.cpp 的推理性能。
当所有折扣消失后,你愿意为AI支付多少钱?
本文推测折扣消失后AI的未来定价,认为当AI达到人类专家级质量时,真正的考量在于用户时间的价值。
Show HN: Hntui – 一个用于 Hacker News 的终端用户界面
hntui 是一个用于浏览 Hacker News 的简洁终端用户界面,提供导航、帖子保存和主题支持等功能。