使用此命令,我可以获得重新启动的容器名称。
kubectl get pods -o jsonpath='{.items[*].status.containerStatuses[?(@.restartCount>0)].name}'
有没有办法在同一个命令中获取pod名称?
用kubectl获取json,然后用jq:处理它要容易得多
#!/usr/bin/env bash
kubectl get pods -o=json |
jq -r '.items[] |
"(.metadata.name) (.status.containerStatuses[]|select(.restartCount>0).name)"'
我还没有尝试过。
如果(!(有效,它就不是你想要的,因为它应该给你每个Pod名称,然后给你一个与谓词匹配的容器名称列表。
我认为您不能单独使用kubectl --output=jsonpath
来仅筛选具有重启容器的Pod名称。
FILTER='
{range .items[*]}
{.metadata.name}
{"t"}
[
{.status.containerStatuses[?(@.restartCount>0)].name}
]
{"n"}
{end}
'
kubectl get pods
--output=jsonpath="${FILTER}"