首页/云/Kubernetes 速查/kubectl get -o custom-columns 自定义表格
kubectl 基础56 条

kubectl get -o custom-columns 自定义表格

自定义列名与取值路径,把关心的字段拼成一张表,比 -o wide 更灵活,适合日常巡检和结果留档。

Kubernetes 速查云更新于 2026-10-13

命令定位

-o custom-columns 让 kubectl get 按你指定的列名与取值路径输出表格,列名自己起、字段可以跨层级取(比如同时列出命名空间、Pod 名、IP、节点、QoS 类)。适用平台是 Kubernetes。它比 -o wide 固定的那几列灵活,比 jsonpath 更适合直接给人看和留档,是日常巡检、写报告、输出到工单时最顺手的一种输出格式。

基本信息

适用平台Kubernetes,任意 kubectl 版本
语法kubectl get <资源> -o custom-columns='<列名>:<jsonpath>,...'
取值路径JSONPath 写法,不支持过滤与循环,只做取值
权限要求与普通 get 一致,只需对应资源的读权限

典型使用场景

  • 巡检留档:一次列出 Pod 名、节点、IP、QoS、重启次数,贴进日报或工单
  • 容量盘点:列 Deployment 的期望副本、就绪副本与镜像版本,快速找出没就绪的工作负载
  • 跨命名空间清点:加 -A 后把命名空间作为第一列,全局视角看资源分布
  • 对接脚本:输出结果稳定、字段可控,适合再喂给 awk 或 Excel 做二次处理
  • 核对标签与注解:把关键注解拉成表,检查各环境是否对齐

常用示例

常用示例
kubectl get pods -o custom-columns='NAME:.metadata.name,IP:.status.podIP,NODE:.spec.nodeName'
kubectl get deploy -o custom-columns='NAME:.metadata.name,READY:.status.readyReplicas,IMAGE:.spec.template.spec.containers[0].image'
kubectl get pods -A -o custom-columns='NS:.metadata.namespace,NAME:.metadata.name,QOS:.status.qosClass'
kubectl get pvc -A -o custom-columns='NS:.metadata.namespace,NAME:.metadata.name,SC:.spec.storageClassName,SIZE:.spec.resources.requests.storage'
kubectl get pods -o custom-columns='NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount,PHASE:.status.phase' | sort -t' ' -k2 -n

输出逐列读法

现象含义排查方向
显示 <none>该路径在对象里不存在(或数组下标越界)确认字段名与下标,多容器要逐个列
整列空白路径拼写错误但语法合法先用 -o yaml 对照实际结构
数值为 0 或缺失字段尚未被控制器写入对象可能刚创建或未就绪
列名乱掉列名里含逗号或冒号列名改用下划线,避免解析被破坏
取值只查第一层匹配:容器列表写 containers[0] 就只取第一个容器,多容器场景建议用 -o jsonpath 配合 range 循环,或直接看 describe 输出。
custom-columns 不做过滤与排序,需要筛选时配合 --field-selector、-l 选择器或管道后的 sort、awk 使用,组合起来比单独写脚本更省事。

易错点

  • 列名里含逗号或冒号会破坏解析,列名统一用下划线命名,避免整张表错位
  • 数组索引越界(容器不止一个时固定取 0)会显示 <none>,多容器旁证信息会缺失,需用 jsonpath 循环输出
  • 把 custom-columns 当筛选器:它只影响显示,不减少返回对象,想缩小范围仍要加 -l 或 --field-selector
  • 取值路径大小写敏感,写错大小写不会报错只会显示 <none>,容易被误读成资源没有该字段

数据来源与参考

  • Kubernetes 官方文档 · kubectl get
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌