列出最近24小时内新创建的kubernetes pod

a9wyjsp7  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(3)|浏览(131)

我想列出24小时内创建的pod。我没有找到任何kubectl命令或任何东西来获取这些。有没有人可以帮助我使用kubectl命令来获取最近24小时内创建的pod。

gxwragnw

gxwragnw1#

不是最漂亮的解决方案,但这应该工作(或给予你一个想法,如果你想进一步改善命令)

kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}} {{.metadata.creationTimestamp}}{{"\n"}}{{end}}' | awk '$2 > "'$(date -d 'yesterday' -Ins --utc | sed 's/+0000/Z/')'" { print $1 }'

列出所有pod名称并过滤startTime >为一天的行。

n8ghc7c1

n8ghc7c12#

为了列出最近24小时内创建的所有Pod,您可以使用以下命令:

kubectl get pods --sort-by=.metadata.creationTimestamp | awk 'match($5,/^[0-9]h|^[0-9][0-9]h|^[0-9]m|^[0-9][0-9]m|^[0-9]s|^[0-9][0-9]s/) {print $0}'

如果您还想获取仅包含错误的Pod,则可以用途:

kubectl get pods --sort-by=.metadata.creationTimestamp | awk 'match($5,/^[0-9]h|^[0-9][0-9]h|^[0-9]m|^[0-9][0-9]m|^[0-9]s|^[0-9][0-9]s/) {print $0}' | grep -i Error

或者只列出状态为Pending的Pod:

kubectl get pods --field-selector=status.phase=Pending --sort-by=.metadata.creationTimestamp | awk 'match($5,/^[0-9]h|^[0-9][0-9]h|^[0-9]m|^[0-9][0-9]m|^[0-9]s|^[0-9][0-9]s/) {print $0}'
dgsult0t

dgsult0t3#

以前的答案对我不起作用,regex似乎是错误的,并且实际creationTimestamp的字段是今天的第六个,所以:

kubectl get pods -A --sort-by=.metadata.creationTimestamp | awk 'match($6,/^[0-9]+[sm]{1}|^[0-5][0-9]m|^[1-9]h|^1[0-9]*h|^2[0-4]h/) {print $0}'

附加|grep -v Completed以过滤已完成的pod/作业也可能很有用。
https://regex101.com/r/l5gLKu/1
客户端版本:v1.26.1
Kustomize版本:v4.5.7
服务器版本:v1.25.5
死亡率:

alias kpods1day="kubectl get pods -A --sort-by=.metadata.creationTimestamp | awk 'match(\$6,/^[0-9]+[sm]{1}|^[0-5][0-9]m|^[1-9]h|^1[0-9]*h|^2[0-4]h/) {print \$0}' |grep -v \"Completed\|kube-system\""  
alias kpods2days="kubectl get pods -A --sort-by=.metadata.creationTimestamp | awk 'match(\$6,/^[0-9]+[sm]{1}|^[0-5][0-9]m|^[1-9]h|^1[0-9]*h|^[2-3][0-9]h|^4[0-8]h/) {print \$0}' |grep -v \"Completed\|kube-system\""

相关问题