如何通过kubectl get secrets命令仅提取NAME字段内容?
仅获取Kubernetes Secrets的NAME字段内容
当然可以实现这个需求,以下是几种实用的方法:
方法1:kubectl原生自定义列输出(推荐)
直接通过kubectl自带的参数指定仅输出NAME字段,无需额外工具:
kubectl get secrets -n mynamespace -o custom-columns="NAME:.metadata.name" --no-headers
-o custom-columns="NAME:.metadata.name":指定只输出对应资源metadata.name字段的内容,列名设为NAME--no-headers:去除表头行,只保留密钥名称内容
方法2:用awk过滤文本输出
如果习惯用文本处理工具,可通过awk提取第一列内容:
kubectl get secrets -n mynamespace | awk 'NR>1 {print $1}'
NR>1:跳过第一行的表头print $1:打印每行的第一个字段,即NAME列的内容
方法3:jsonpath格式提取
也可以通过jsonpath语法精准提取名称:
kubectl get secrets -n mynamespace -o jsonpath='{.items[*].metadata.name}'
如果需要每个名称单独一行显示,可添加换行符:
kubectl get secrets -n mynamespace -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
内容的提问来源于stack exchange,提问作者purtu
相关产品推荐
相关产品推荐

