输出选项
格式化输出
所有 kubectl
命令的默认输出格式都是人类可读的纯文本格式。要以特定格式在终端窗口输出详细信息, 可以将 -o
或 --output
参数添加到受支持的 kubectl
命令中。
语法
kubectl [command] [TYPE] [NAME] -o <output_format>
取决于具体的 kubectl
操作,支持的输出格式如下:
-o custom-columns=<spec>
使用逗号分隔的自定义列列表打印表。
-o custom-columns-file=<filename>
使用 <filename> 文件中的自定义列模板打印表。
-o json
输出 JSON 格式的 API 对象
-o jsonpath=<template>
打印 jsonpath 表达式定义的字段
-o jsonpath-file=<filename>
打印 <filename> 文件中 jsonpath 表达式定义的字段。
-o name
仅打印资源名称而不打印任何其他内容。
-o wide
以纯文本格式输出,包含所有附加信息。对于 Pod 包含节点名。
-o yaml
输出 YAML 格式的 API 对象。
在此示例中,以下命令将单个 Pod 的详细信息输出为 YAML 格式的对象:
kubectl get pod web-pod-13je7 -o yaml
自定义列
要定义自定义列并仅将所需的详细信息输出到表中,可以使用 custom-columns 选项。
你可以选择内联定义自定义列或使用模板文件:-o custom-columns=<spec> 或 -o custom-columns-file=<filename>。
示例
内联:
kubectl get pods <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
模板文件:
kubectl get pods <pod-name> -o custom-columns-file=template.txt
其中,
template.txt
的内容如下:NAME RSRC metadata.name metadata.resourceVersion
运行这两个命令之一的结果类似于:
NAME RSRC
submit-queue 610995
Server-side 列
kubectl 支持从服务器接收关于对象的特定列信息。 这意味着对于任何给定的资源,服务器将返回与该资源相关的列和行,以便客户端打印。 通过让服务器封装打印的细节,这允许在针对同一集群使用的客户端之间提供一致的人类可读输出。
此功能默认启用。要禁用它,请将该 --server-print=false
参数添加到 kubectl get
命令中。
例子
要打印有关 Pod 状态的信息,请使用如下命令:
kubectl get pods <pod-name> --server-print=false
输出类似于:
NAME AGE
pod-name 1m
排序列表对象
要将对象排序后输出到终端窗口,可以将 --sort-by 参数添加到支持的 kubectl 命令。 通过使用 --sort-by 参数指定任何数字或字符串字段来对对象进行排序。
要指定字段,请使用 jsonpath 表达式。
语法
kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>
示例
要打印按名称排序的 Pod 列表,请运行:
kubectl get pods --sort-by=.metadata.name
最后更新于
这有帮助吗?