You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于kube-prometheus-stack创建可部署的自定义Helm Chart包?

解决kube-prometheus-stack自定义Helm包打包错误及完整构建流程

一、错误原因解析

你遇到的错误是因为kube-prometheus-stack是一个umbrella Chart(聚合式Chart),它在Chart.yaml中声明了alertmanager、kube-state-metrics等依赖Chart,但这些依赖没有被拉取到本地的charts/目录中,导致Helm打包时无法找到它们。

二、正确获取原Chart模板的方法

不要手动复制仓库文件,推荐用以下两种方式获取完整的Chart文件:

方式1:使用helm pull拉取官方Chart包

执行命令直接拉取并解压kube-prometheus-stack的Chart:

helm pull prometheus-community/kube-prometheus-stack --untar

解压后会得到一个完整的kube-prometheus-stack目录,包含Chart.yaml、templates/文件夹以及依赖声明配置。

方式2:克隆官方Helm Charts仓库

如果需要查看完整仓库内容,可克隆后进入对应目录:

git clone https://github.com/prometheus-community/helm-charts.git
cd helm-charts/charts/kube-prometheus-stack

三、处理依赖并完成自定义打包

拿到完整Chart后,按需求修改templates/下的文件,再按以下步骤处理依赖并打包:

1. 拉取依赖到本地charts/目录

在你的自定义Chart目录(比如prometheus-chart/)下执行:

helm dependency build prometheus-chart/

该命令会读取Chart.yaml中的依赖配置,自动拉取所有所需子Chart到charts/目录。

2. 执行打包命令

依赖拉取完成后,执行打包命令即可:

helm package prometheus-chart/

也可以一步到位,用--dependency-update参数让Helm在打包前自动更新依赖:

helm package --dependency-update prometheus-chart/

3. 验证可分享性

打包完成后会生成一个.tgz格式的Chart包,这个包包含所有依赖(若已拉取到本地),可直接分享给他人,对方执行以下命令即可部署:

helm install <release-name> ./kube-prometheus-stack-<version>.tgz

四、额外注意事项

  • 若修改了Chart.yaml中的依赖版本,需重新执行helm dependency build拉取对应版本的依赖。
  • 若不想本地存储依赖,也可在Chart.yaml中配置依赖的远程仓库,但这种方式要求部署时网络能访问远程仓库,不如包含依赖的包适合离线分享。

内容的提问来源于stack exchange,提问作者egib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:11:13