JSON Path
kubectl はアウトプットの形式として JSONPath をサポートしています。
kubectl get pods -o=jsonpath='{ .items[0].spec.containers[0].image }'
例
次の Node の定義に対する jsonpath の出力結果を確認します。
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "v1",
"kind": "Node",
"metadata": [{
"name": "master"
}],
"status": {
"capacity": {
"cpu": "4"
},
"nodeInfo": {
"architecture": "amd64",
"operationgSystem": "linux"
}
}
},
{
"apiVersion": "v1",
"kind": "Node",
"metadata": [{
"name": "node01"
}],
"status": {
"capacity": {
"cpu": "4"
},
"nodeInfo": {
"architecture": "amd64",
"operationgSystem": "linux"
}
}
},
]
}
$ kubectl get nodes -o=jsonpath='{.itmes[*].metadata.name}'
master node01
$ kubectl get nodes -o=jsonpath='{.items[*].status.nodeInfo.architecture}'
amd64 amd64
$ kubectl get nodes -o=jsonpath='{.items[*].metadata.name} {.items[*].status.capacity.cpu}'
master node01 4 4
{"\n"}
で改行を {"\t"}
でタブを出力できます。
$ kubectl get nodes -o=jsonpath='{.items[*].metadata.name} {"\n"} {.items[*].status.capacity.cpu}'
master node01
4 4
kubectl get nodes -o=jsonpath='{range .items[*]} {.metadata.name} {"\t"} {.status.capaticy.cpu {"\n"} {end}'
- カスタムカラム
カスタムカラムは、コンマ区切りされたカスタムカラムのリストを指定してテーブルを表示します。
kubectl get nodes -o=custom-columns=<COLUMN NAME>:<JSON PATH>
kubectl get nodes -o=custom-columns=NODE:.metadata.name
NODE
master
node-1
- ソート
kubectl get nodes --sort-by=.metadata.name
NAME STATUS ROLES AGE VERSION
master Ready master 5m v1.11.3
node01 Ready <none> 5m v1.11.3