如何通过kubectl命令重复显示Pod与容器名称的对应组合?
问题描述
我有两个Pod(podA和podB),每个Pod包含2个容器,希望输出如下格式:
podA containerA podA containerB podB containerA podB containerB
目前使用的jsonpath格式kubectl命令:
kubectl get pods -o jsonpath="{range .items[*]}{.metadata.name}{range .spec.containers[*]}{.name}{' '}{end}{end}"
得到的输出是:
podA containerA containerB podB containerA containerB
请问仅通过kubectl命令能否实现重复显示Pod名称的需求?
解决方案
可以实现,只需调整jsonpath的循环嵌套逻辑,把Pod名称的输出放到容器的循环内部,让每个容器条目都对应输出一次所属Pod的名称。
修改后的命令:
kubectl get pods -o jsonpath="{range .items[*]}{range .spec.containers[*]}{.metadata.name} {.name}{'\n'}{end}{end}"
逻辑说明:
- 外层循环遍历所有Pod(
.items[*]) - 内层循环遍历当前Pod下的所有容器(
.spec.containers[*]) - 在容器循环内部,先输出当前Pod的名称,再输出容器名称并换行,确保每个容器都能和所属Pod名称配对输出
内容的提问来源于stack exchange,提问作者jaudo
相关产品推荐
相关产品推荐

