You need to enable JavaScript to run this app. 如何从Helm Release中获取所有关联资源的名称
优惠活动
大模型
产品
解决方案
定价
更多

如何从Helm Release中获取所有关联资源的名称

获取指定Helm Release下所有资源名称的实现方法

你找到的参考命令思路正确,仅存在字段适配的小问题:helm get all的输出结构中资源列表存放在.resources字段而非.items(.items是kubectl类命令的返回结构),修正后即可正常使用。


方案1:直接使用helm命令配合模板输出

这是最高效的方式,不需要额外存储临时文件,调整后的命令如下:

helm get all <RELEASE_NAME> -n <RELEASE_NAMESPACE> --template '{{range .resources}}{{.metadata.name}}{{"\n"}}{{end}}'
  • 把命令中的<RELEASE_NAME>替换为你要查询的Release名称
  • 把<RELEASE_NAMESPACE>替换为Release所在的命名空间,如果是默认命名空间可省略-n参数
  • 模板末尾的{{"\n"}}用于让每个资源名称单独占一行,方便查看

如果需要同时输出资源类型,可调整模板部分:

helm get all <RELEASE_NAME> -n <RELEASE_NAMESPACE> --template '{{range .resources}}{{.kind}}: {{.metadata.name}}{{"\n"}}{{end}}'

如果需要过滤特定类型的资源(比如仅查看Deployment),可增加判断逻辑:

helm get all <RELEASE_NAME> -n <RELEASE_NAMESPACE> --template '{{range .resources}}{{if eq .kind "Deployment"}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}'

方案2:配合kubectl过滤,适配自定义需求

如果你记不住helm的模板语法,可以用导出清单再过滤的方式:

  • 第一步:导出指定Release的所有资源清单到临时文件
helm get all <RELEASE_NAME> -n <RELEASE_NAMESPACE> > release-resources.yaml
  • 第二步:用kubectl提取所有资源名称
kubectl get -f release-resources.yaml -o custom-columns=NAME:.metadata.name --no-headers

操作完成后可自行删除临时的release-resources.yaml文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:30:04