输出选项

格式化输出

所有 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

最后更新于