ece*_*ulm 13 kubernetes kubectl
我只想列出 pod,并将其.status.podIP作为额外的列。似乎一旦我指定-o=custom-colums=默认列NAME, READY, STATUS, RESTARTS, AGE就会消失。
我能得到的最接近的是
kubectl get pod -o wide -o=custom-columns="NAME:.metadata.name,STATUS:.status.phase,RESTARTS:.status.containerStatuses[0].restartCount,PODIP:.status.podIP"
Run Code Online (Sandbox Code Playgroud)
但这并不真正等同于默认列,如下所示:
2/2或0/1通过使用自定义列.status.phase永远不会是Evicted。看来默认的 STATUS 是.status.phase和的组合.status.reason。有没有办法说显示.status.phase如果它正在运行但如果不显示.status.reason?有人知道自定义列语法中默认列的定义吗?
kubectl get pods我检查了和之间的 API 请求之间的差异kubectl -o custom columns:
curl -k -v -XGET -H Accept: application/json;as=Table;v=v1;g=meta.k8s.io,application/json;as=Table;v=v1beta1;g=meta.k8s.io,application/json -H User-Agent: kubectl/v1.18.8 (linux/amd64) kubernetes/9f2892a http://127.0.0.1:8001/api/v1/namespaces/default/pods?limit=500
Run Code Online (Sandbox Code Playgroud)
curl -k -v -XGET -H Accept:
application/json -H User-Agent: kubectl/v1.18.8 (linux/amd64) kubernetes/9f2892a http://127.0.0.1:8001/api/v1/namespaces/default/pods?limit=500
Run Code Online (Sandbox Code Playgroud)
所以你会注意到,当-o custom columns使用时,kubectl 获取PodList而不是Table响应主体。Podlist 没有聚合数据,因此据我了解,使用 kubectl pod 不可能获得相同的输出custom-column。
这是负责您想要的输出的代码片段。可能的解决方案是分叉客户端并根据您自己的需求对其进行自定义,因为您可能已经注意到此输出需要一些自定义逻辑。另一种可能的解决方案是使用 Kubernetes API 客户端库之一。最后,您可能想尝试使用kubectl 插件扩展 kubectl功能。
| 归档时间: |
|
| 查看次数: |
3813 次 |
| 最近记录: |