购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3.1 kubectl子命令概要

1.kubectl子命令用法

kubectl命令格式如下:

     kubectl [command] [TYPE] [NAME] [flags]

command:指定对一个或多个资源执行的操作,如get、create、delete。

TYPE:指定资源类型,如pod、deployment、service,不区分大小写;可以指定单数、复数或缩写形式。例如,以下命令会输出相同的结果:

     kubectl get pods test-pod
     kubectl get pod test-pod
     kubectl get po test-pod

你可以通过“kubectl api-resources”命令(第三列)获取所有资源类型及其缩写别名。

NAME:指定资源名称,名称区分大小写。如果省略名称,则显示所有资源。

flags:指定可选的参数。你可以通过“kubectl options”命令查看更多参数。

kubectl提供了丰富的管理命令,你可以通过“kubectl --help”命令查看这些命令。kubectl所有子命令的概要如表2-3所示。

表2-3 kubectl所有子命令的概要

续表

续表

2.输出选项

在查看资源对象时,可以使用“-o”参数指定输出的格式。支持输出的格式如表2-4所示。

表2-4 支持输出的格式

以下是关于“-o”参数的使用示例:

1)自定义列和标题

例如,仅输出Pod名称和状态:

     kubectl get pod -o custom-columns=NAME:.metadata.name,STATUS:.status. phase

2)以JSON格式输出特定字段

JSONPath是一种用于从JSON数据中选择或过滤数据的表达式语言。以下是JSONPath的使用示例:

     # 获取第一个Pod对象
     kubectl get pod -o jsonpath='{.items[0]}'
     # 获取第一个Pod对象的名称
     kubectl get pod -o jsonpath='{.items[0].metadata.name}'
     # 获取列出的所有Pod对象名称和状态
     kubectl get pod -o jsonpath="{.items[*]['metadata.name','status.phase']}"
     # 获取列出的所有Pod对象名称和启动时间
     kubectl get pod -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}
   {.status.startTime}{"\n"}{end}'
     # 获取指定Service对象的NodePort端口
     kubectl get service <名称> -o jsonpath='{.spec.ports[0].nodePort}'

3)将资源对象配置为以YAML或JSON格式输出

例如,将单个Pod对象配置为以YAML格式输出:

     kubectl get pod <Pod名称> -o yaml

将单个Pod对象配置为以JSON格式输出:

     kubectl get pod <Pod名称> -o json

4)输出详细信息

例如,查看Pod对象更多信息:

     kubectl get pod -o wide
3.输出排序

在查看资源对象时,可以使用“--sort-by”参数来指定用于排序的字段。

例如,根据Pod名称进行排序输出: 7dO1cPlsLBjSIrjZTrk3coMDeO8LLdSlBtp6c8P7a0DXRSULBIck4p6YV9cc09cQ

     kubectl get pods --sort-by=.metadata.name
点击中间区域
呼出菜单
上一章
目录
下一章
×