列出所有容器中所有容器的状态

时间:2019-02-27 18:43:31

标签: kubernetes kubectl

我试图获取所有Pod中所有非就绪容器的列表,以调试集群中的网络问题。

是否可以使用kubectl来获得所有容器中所有容器及其状态(READY / ..)的清晰列表?

我当前正在使用

$ kubectl get pods 

但是,输出可能非常庞大,并且可能很难知道哪些容器已就绪,哪些容器有问题。

谢谢。

2 个答案:

答案 0 :(得分:6)

U_hist

改编自此文档:https://kubernetes.io/docs/tasks/access-application-cluster/list-all-running-container-images/#list-containers-by-pod

编辑以描述jsonpath在做什么:

据我对jsonpath的了解,range迭代通过获取Pod返回的所有.items [*]。添加\ n可将结果每行分割为一个,否则结果将为一行。要查看其余的工作原理,您应该选择一个吊舱并运行: U_hist
.metadata.name对应于

U_hist=[U5 U_hist].

类似地,.status.containerStatuses [*]对应于应排在最底部的容器状态列表。

答案 1 :(得分:0)

我已经修改了 @joshua-oliphant's answer 以包含容器名称:

kubectl get pods -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .status.containerStatuses[*]}{.name}{": "}{.ready}{", "}{end}{end}'

这将显示所有 pod,包括当前命名空间中的所有容器及其就绪状态,例如:

pod-name: container-name-a: true, container-name-b: false