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

如何用kubectl便捷查看Secret的所有明文键值对(含所有Secret)

简便查看Kubernetes Secret明文键值对的方法

我完全懂你这种不想折腾脚本、只想一键搞定的心情——之前用jsonpath或者基础jq只能拿到base64编码值,还要手动解码确实够麻烦的。下面给你两个不用写脚本的简便方案,直接就能输出明文键值对:

方法一:用kubectl内置Go模板直接解码

Kubectl支持Go模板,而Go模板自带b64dec函数可以直接解码base64内容。针对你的testsecret,用这个命令就能一次性输出所有明文键值对:

kubectl get secret testsecret -o go-template='{{range $k,$v := .data}}{{$k}}: {{$v | b64dec}}{{"\n"}}{{end}}'

执行后会直接输出:

key1: val1
key2: val2

如果想查看所有Namespace下的Secret明文,只需要加上--all-namespaces参数,调整模板遍历每个Secret即可:

kubectl get secrets --all-namespaces -o go-template='{{range .items}}{{.metadata.namespace}}/{{.metadata.name}}:
{{range $k,$v := .data}}  {{$k}}: {{$v | b64dec}}{{"\n"}}{{end}}{{"\n"}}{{end}}'

方法二:用jq自动解码(更简洁的管道命令)

如果你习惯用jq,可以让它帮你自动完成解码操作,不用手动调用base64命令。针对单个Secret的命令如下:

kubectl get secret testsecret -o json | jq -r '.data | to_entries[] | "\(.key): \(.value|@base64d)"'

同样能直接输出明文键值对。要查看所有Secret的话,调整jq的遍历逻辑就行:

kubectl get secrets --all-namespaces -o json | jq -r '.items[] | "\(.metadata.namespace)/\(.metadata.name)\n" + (.data | to_entries[] | "  \(.key): \(.value|@base64d)") + "\n"'

这两个方法都不需要额外写脚本,直接复制命令就能用,完全满足你一次性查看明文的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:09:36