我试图获取所有Pod中所有非就绪容器的列表,以调试集群中的网络问题。
是否可以使用kubectl来获得所有容器中所有容器及其状态(READY / ..)的清晰列表?
我当前正在使用
$ kubectl get pods
但是,输出可能非常庞大,并且可能很难知道哪些容器已就绪,哪些容器有问题。
谢谢。
答案 0 :(得分:6)
U_hist
编辑以描述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