删除 kubectl 命令返回的标题行

Jul*_*oro 11 bash kubernetes kubectl

我正在使用 kubernetes,我想从应用程序名称中获取 podname。这是我使用的命令。

POD=$(kubectl get pods -l app=influxdb-local -o custom-columns=:metadata.name -n influx)
Run Code Online (Sandbox Code Playgroud)

然后我想将结果用于:

kubectl exec -it -n influx $POD -- influx -username user -password "user" -execute "CREATE DATABASE db"
Run Code Online (Sandbox Code Playgroud)

但是第一行是空的,第二行包含pod名称,所以第二个命令不起作用。

我应该如何删除第一条白线?

Jon*_*nas 29

添加--no-headers跳过标题行

kubectl get pods -l app=influxdb-local -o custom-columns=:metadata.name -n influx --no-headers
Run Code Online (Sandbox Code Playgroud)

自定义列

使用该标志-o custom-columns=<header-name>:<field>可以让您自定义输出。

标题下带有资源名称的示例NAME

kubectl get pods -o custom-columns=NAME:metadata.name
Run Code Online (Sandbox Code Playgroud)

输出

NAME
myapp-5b77df6c48-dbvnh
myapp-64d5985fdb-mcgcn
httpd-9497b648f-9vtbl
Run Code Online (Sandbox Code Playgroud)

空标题名称:您将标志用作-o custom-columns=:metadata.name- 第一行是标题行,但标题为空。

省略标题

省略标题行的正确解决方案是使用标志--no-headers

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

输出示例

myapp-5b77df6c48-dbvnh
myapp-64d5985fdb-mcgcn
httpd-9497b648f-9vtbl
Run Code Online (Sandbox Code Playgroud)