Kubernetes 按年龄排序 pods

Kubernetes sort pods by age

我可以按名称对我的 Kubernetes pods 进行排序:

kubectl get pods --sort-by=.metadata.name

如何使用 kubectl 按年龄对它们(或其他资源)进行排序?

Pods 有状态,你可以用它来找出开始时间。

我想 kubectl get po --sort-by=.status.startTime 应该可以。

您也可以试试:

  1. kubectl get po --sort-by='{.firstTimestamp}'.
  2. kubectl get pods --sort-by=.metadata.creationTimestamp 谢谢@chris

显然在 Kubernetes 1.7 版本中,排序方式也被破坏了。

https://github.com/kubernetes/kubectl/issues/43

这是错误报告:https://github.com/kubernetes/kubernetes/issues/48602

这是公关:https://github.com/kubernetes/kubernetes/pull/48659/files

kubectl get pods --sort-by=.metadata.creationTimestamp

如果要按年龄倒序排列:

kubectl get po --sort-by=.metadata.creationTimestamp -n <<namespace>> | tac

如果您正在尝试获取最近创建的 pod,您可以执行以下操作

kubectl get pods --sort-by=.metadata.creationTimestamp -o jsonpath='{.items[-1:].metadata.name}'

注意 -1: 获取列表中的最后一项,然后我们 return pod 名称

如果您只想要 most-recently-created pod 的名称;

POD_NAME=$(kubectl get pod --sort-by=.metadata.creationTimestamp -o name | cut -d/ -f2 | tail -n 1)
echo "${POD_NAME}"

我想查看过去 24 小时内更新的所有 pods。这非常有效,并且不依赖于特定版本的 Kubernetes 或 Kubernetes 除了 get pods:

之外的高级参数

kubectl get pods | awk '{print " : " }' | grep -E ':\s([1-9]|[12][0-4])h$' | sort -k3,3