kubernetes下使用kubectl命令查询重启次数大于0的pod

- Kubernetes

本篇介绍在 kubernetes(k8s) 下使用 kubectl 命令查询重启次数大于 0 的pod,对应的 pod 名称、重启次数、最近一次重启时间信息。
2023-12-05T15:13:42.png


查询重启次数大于0的pod

[root@imzcy ~]# kubectl -n prod get pods -o json | jq -r '.items[] | select(any(.status.containerStatuses[]; .restartCount > 0)) | .metadata.name'
deployment-express-signinapp-v48-20231012091638-86dd7db7c9b6hlp
deployment-express-signinapp-v48-20231012091638-86dd7db7c9bfz46
deployment-java-logisticslogic-v2-54756647fd-4rjj7
[root@imzcy ~]#


查询重启次数大于0的pod及对应重启次数

[root@imzcy ~]# kubectl -n prod get pods -o json | jq -r -c  '.items[] | select(any(.status.containerStatuses[]; .restartCount > 0)) | {name: .metadata.name, restartCount: .status.containerStatuse
s[].restartCount}'
{"name":"deployment-express-signinapp-v48-20231012091638-86dd7db7c9b6hlp","restartCount":2}
{"name":"deployment-express-signinapp-v48-20231012091638-86dd7db7c9bfz46","restartCount":4}
{"name":"deployment-java-logisticslogic-v2-54756647fd-4rjj7","restartCount":1}
[root@imzcy ~]#


查询重启次数大于0的pod及重启次数和最近一次重启时间

查询重启次数大于 0 的pod,对应的 pod 名称、重启次数、最近一次重启时间(因为K8S默认时间为UTC时间,所以转换为CST这个时间要再加上8小时,例如最下面一个2023-10-25T01:00:43Z 则实际是 10月25号的早上09:00:43)。

[root@imzcy ~]# kubectl -n prod get pods -o json | jq -r -c  '.items[] | select(any(.status.containerStatuses[]; .restartCount > 0)) | {name: .metadata.name, restartCount: .status.containerStatuses[].restartCount, lastRestart: .status.containerStatuses[].lastState.terminated.finishedAt}'
{"name":"deployment-express-signinapp-v48-20231012091638-86dd7db7c9b6hlp","restartCount":2,"lastRestart":"2023-10-23T13:03:07Z"}
{"name":"deployment-express-signinapp-v48-20231012091638-86dd7db7c9bfz46","restartCount":4,"lastRestart":"2023-10-23T13:03:13Z"}
{"name":"deployment-java-logisticslogic-v2-54756647fd-4rjj7","restartCount":1,"lastRestart":"2023-10-25T01:00:43Z"}
[root@imzcy ~]#