oc get pods - 命令只打印 pod 名称

lr-*_*pal 6 openshift kubernetes kubectl

我只想获取 pod 名称的列表,结果不应包括状态、实例数等。

我正在使用命令

oc get pods

它打印

Pod1-qawer            Running           1/1           2d
Pod2g-bvch            Running           1/1           3h
Run Code Online (Sandbox Code Playgroud)

预期结果

Pod1-qawer
Pod2g-bvch
Run Code Online (Sandbox Code Playgroud)

我如何避免打印额外的细节

Jon*_*nas 11

您可以省略标头,--no-headers您可以使用它-o custom-columns=来自定义输出。

oc get pods -o custom-columns=POD:.metadata.name --no-headers
Run Code Online (Sandbox Code Playgroud)

示例输出

$ oc get pods -o custom-columns=POD:.metadata.name --no-headers
goapp-75d9b6bfbf-b5fdh
httpd-58c5c54fff-b97h8
app-proxy-6c8dfb4899-8vdkb
app-64d5985fdb-xjp58
httpd-dd5976fc-rsnhz
Run Code Online (Sandbox Code Playgroud)


mir*_*phd 7

使用oc get <object> -o name此处的语法(对于 pod):

oc get pods -o name

但它也适用于 dc、svc、route、template、..

示例输出:

pod/m0001-v5-tst-1-b5xfs
pod/m0001-v5-tst-1-mv5zl
Run Code Online (Sandbox Code Playgroud)

请注意,这些对象前缀(此处:)pod/完全可以接受所有 oc 客户端工具命令,因此无需删除前缀,它们可以保留并进一步处理,例如:

$ oc describe $(oc get pods -o name | grep m0001-v5) | grep TAG`

      CONTAINER_TAG:               20200430
      CONTAINER_TAG:               20200430
Run Code Online (Sandbox Code Playgroud)

请注意,我们不像pods往常一样使用(即oc describenot oc describe pods)以避免重复。

另一个例子:

$ oc delete $(oc get dc,svc,route,is -o name)
service "nginx" deleted
route.route.openshift.io "nginx" deleted
imagestream.image.openshift.io "nginx" deleted
Run Code Online (Sandbox Code Playgroud)

  • 它适用于几乎所有 oc 客户端工具 - 除了复制命令 (2认同)

小智 0

oc get po --no-headers | awk '{print $1}'