如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OpenCost 为团队提供当前和历史 Kubernetes 及云支出与资源分配的可见性。这些模型在支持多个应用程序、团队、部门等的 Kubernetes 环境中提供成本透明度。它还提供跨多个云服务提供商的云成本可见性。
OpenCost 最初由 Kubecost 开发并开源。该项目结合了规范以及这些详细要求的 Golang 实现。Web UI 可在 opencost/opencost-ui 仓库中获取。
要查看 OpenCost 的完整功能,您可以查看 OpenCost 特性。以下是已启用特性的摘要:
OpenCost 现在仅通过官方 Helm chart 进行安装和管理。
在任何 Kubernetes 1.20+ 集群上快速安装:
helm repo add opencost https://opencost.github.io/opencost-helm-chart
helm repo update
helm install opencost opencost/opencost
[!NOTE] 独立的 Kubernetes 清单文件已被移除。请使用 Helm 进行所有安装和升级。有关详细信息和配置,请参阅 Helm 安装文档。
[!NOTE] 针对分片 Prometheus 用户的说明:如果您运行分片(HA)模式的 Prometheus,请将 PROMETHEUS_SERVER_ENDPOINT 设置为全局查询端点(例如 Thanos Query、Cortex 或 Mimir)。指向单个 Prometheus pod 可能会导致导出结果不完整或间歇性问题。有关详细信息,请参阅 Prometheus 集成文档。
[!NOTE] 针对分片 Prometheus 用户的说明:如果您运行分片(HA)模式的 Prometheus,请将 PROMETHEUS_SERVER_ENDPOINT 设置为全局查询端点(例如 Thanos Query、Cortex 或 Mimir)。指向单个 Prometheus pod 可能会导致导出结果不完整或间歇性问题。有关详细信息,请参阅 Prometheus 集成文档。
PROMETHEUS_SERVER_ENDPOINT
MCP服务器为AI代理提供以下工具:
get_allocation_costs:通过筛选和聚合检索成本分配数据。
参数:
windowaggregatestepaccumulateshare_idleinclude_idleget_asset_costs:检索资产成本数据,包括节点、磁盘、负载均衡器等。
参数:
windowget_cloud_costs:通过提供商、服务和区域筛选检索云成本数据。
参数:
windowaggregateaccumulateproviderservicecategoryregionaccountID配置完成后,AI代理可以如下查询成本数据:
// 获取过去7天的成本分配
const allocation = await mcpClient.callTool('get_allocation_costs', {
window: '7d',
aggregate: 'namespace,node'
});
// 获取过去24小时的资产成本
const assets = await mcpClient.callTool('get_asset_costs', {
window: '1d'
});
// 获取us-west-1区域AWS EC2的云成本
const cloudCosts = await mcpClient.callTool('get_cloud_costs', {
window: '7d',
aggregate: 'service',
provider: 'aws',
service: 'ec2',
accumulate: 'day',
filter: 'regionID:"us-west-1"'
});
有关详细的设置说明和高级配置,请参阅Helm图表文档。
使用Tilt(开发环境)
# 克隆并启动带MCP服务器的OpenCost
# 您可能还需要克隆opencost-ui和opencost-helm-charts仓库
# 确保克隆的仓库与opencost位于同一父目录下
git clone https://github.com/opencost/opencost.git
cd opencost
tilt up
默认配置
UI和Prometheus均运行在9090端口。您可能需要端口转发到非默认端口以同时访问两者。
Tilt配置说明(云成本):
OpenCost的Tilt配置值(tilt-values.yaml)包含额外环境变量,用于在开发环境中启用云成本数据摄入:
# tilt-values.yaml(节选)
opencost:
exporter:
extraEnv:
CLOUD_COST_ENABLED: "true"
CLOUD_COST_CONFIG_PATH: "/var/cloud-integration/cloud-integration.json"
CLOUD_COST_ENABLED设置为"true"以开启云成本数据摄入。CLOUD_COST_CONFIG_PATH指向Tilt使用的已挂载云集成文件(例如:/var/cloud-integration/cloud-integration.json)。tilt-values.yaml中的其他值。使用Helm(生产环境)
# 添加OpenCost Helm仓库
helm repo add opencost https://opencost.github.io/opencost-helm-chart
helm repo update
# 部署启用MCP服务器的OpenCost(选择加入)
helm install opencost opencost/opencost --set opencost.mcp.enabled=true
# 通过端口转发访问MCP服务器(示例)
kubectl port-forward svc/opencost 8081:8081
Helm图表中MCP服务器默认禁用。如需自定义配置:
# 部署启用MCP服务器
helm install opencost opencost/opencost \
--set opencost.mcp.enabled=true
# 部署自定义MCP端口
helm install opencost opencost/opencost \
--set opencost.mcp.port=9091
# 部署带调试日志
helm install opencost opencost/opencost \
--set opencost.mcp.extraEnv.MCP_LOG_LEVEL=debug
配置摘要
| 配置 | 命令 | 描述 |
|---|---|---|
| 默认 | helm install opencost opencost/opencost | MCP默认禁用 |
| 启用 | --set opencost.mcp.enabled=true | 在8081端口启用MCP服务器 |
| 自定义端口 | --set opencost.mcp.port=9091 | 使用不同端口 |
| 调试模式 | --set opencost.mcp.extraEnv.MCP_LOG_LEVEL=debug | 启用调试日志 |
配置您的MCP客户端(如Cursor)以连接到OpenCost MCP服务器:
默认配置(端口8081):
{
"mcpServers": {
"opencost": {
"type": "http",
"url": "http://localhost:8081"
}
}
}
自定义端口配置:
{
"mcpServers": {
"opencost": {
"type": "http",
"url": "http://localhost:9091"
}
}
}
Kubernetes部署场景:
{
"mcpServers": {
"opencost": {
"type": "http",
"url": "http://opencost.opencost.svc.cluster.local:8081"
}
}
}
外部访问场景(使用Load*/Ingress):**
{
"mcpServers": {
"opencost": {
"type": "http",
"url": "http://your-opencost-domain.com:8081"
}
}
}
MCP服务器为AI代理提供以下工具:
get_allocation_costs
通过过滤和聚合检索成本分配数据。
参数:
window(必填):时间窗口(例如:"7d"、"1h"、"30m")aggregate(可选):聚合属性(例如:"namespace"、"pod"、"node")step(可选):分辨率步长accumulate(可选):是否随时间累积share_idle(可选):是否分摊空闲成本include_idle(可选):是否包含空闲资源get_asset_costs
检索资产成本数据,包括节点、磁盘、负载均衡器等。
参数:
window(必填):时间窗口(例如:"7d"、"1h"、"30m")get_cloud_costs
通过提供商、服务和区域过滤检索云成本数据。
参数:
window(必填):时间窗口(例如:"7d"、"1h"、"30m")aggregate(可选):聚合属性(例如:"provider"、"service"、"region")accumulate(可选):时间累积方式("day"、"week"、"month")provider(可选):按云提供商过滤(例如:"aws"、"gcp"、"azure")service(可选):按服务过滤(例如:"ec2"、"compute"、"s3")category(可选):按类别过滤(例如:"compute"、"storage"、"network")region(可选):按区域过滤(例如:"us-west-1"、"us-central1")accountID(可选):按账户ID过滤配置完成后,AI代理可以如下查询成本数据:
// 获取过去7天的成本分配
const allocation = await mcpClient.callTool('get_allocation_costs', {
window: '7d',
aggregate: 'namespace,node'
});
// 获取过去24小时的资产成本
const assets = await mcpClient.callTool('get_asset_costs', {
window: '1d'
});
// 获取us-west-1区域AWS EC2的云成本
const cloudCosts = await mcpClient.callTool('get_cloud_costs', {
window: '7d',
aggregate: 'service',
provider: 'aws',
service: 'ec2',
accumulate: 'day',
filter: 'regionID:"us-west-1"'
});
有关详细的设置说明和高级配置,请参阅https://github.com/opencost/opencost-helm-chart/blob/main/charts/opencost/README.md#mcp-server%E3%80%82
我们 :heart: 拉取请求!有关从源代码构建项目和贡献更改的信息,请参见CONTRIBUTING.md。
您可以查看OpenCost文档获取常见问题列表。
来自真实用户的反馈,见证轩辕镜像的优质服务