首页/云/Kubernetes 速查/kubectl get -o jsonpath 提取字段
kubectl 基础56 条

kubectl get -o jsonpath 提取字段

用 jsonpath 表达式从资源对象中抽取任意字段,适合脚本取值:批量取 Pod 名、查容器镜像、取节点名等。

Kubernetes 速查云更新于 2026-10-12
用途从查询结果中精确提取单个或多个字段值
语法kubectl get <资源> -o jsonpath='{表达式}'

常用示例

常用示例
kubectl get pods -o jsonpath='{.items[*].metadata.name}'
kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.podIP}{"\n"}{end}'
kubectl get pod web-0 -o jsonpath='{.spec.nodeName}'
kubectl get svc web -o jsonpath='{.spec.clusterIP}'
单资源查询表达式从 {.field} 开始;列表查询需要 .items[*];循环输出用 {range}...{end}。

易错点

  • 把 jsonpath 写在双引号里时里面的字段无需转义;写在 shell 单引号里可避免 $ 被 shell 展开
  • 写 {.items.name} 这类路径会静默输出空值,先确认层级(metadata.name)再写进脚本

数据来源与参考

  • Kubernetes 官方文档 · kubectl get(jsonpath 语法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌