Kubectl之JSONPath
2020-11-04 本文已影响0人
跑腿打杂临时工
背景
最近接到一个需求,需要通过kubectl命令展示出一些特定的字段,比如只显示pod name和host ip,接到这个需求之后开始查找kubectl命令帮助,找到了一个"-o=jsonpath="的命令可以基本满足需求。
执行参数
kubectl get pods -o json
kubectl get pods -o=jsonpath='{@}'
kubectl get pods -o=jsonpath='{.items[0]}'
kubectl get pods -o=jsonpath='{.items[0].metadata.name}'
kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'
测试结果
[root@master-1 ~]# kubectl get pods -n test -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.hostIP}{"\n"}'
nginx-test-77f7fc6bd7-jfw8j 172.17.108.170
nginx-test-77f7fc6bd7-mzwc2 172.17.108.255