122

我可以使用以下方法按名称对我的 Kubernetes pod 进行排序:

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

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

4

6 回答 6

188

Pod 有状态,您可以使用它来找出 startTime。

我想类似的东西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

于 2017-07-25T18:59:49.220 回答
38
kubectl get pods --sort-by=.metadata.creationTimestamp
于 2018-07-20T09:41:58.050 回答
3

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

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

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

于 2020-10-09T11:03:00.237 回答
2

如果要根据年龄以相反的顺序对它们进行排序:

kubectl get po --sort-by=.metadata.creationTimestamp -n <<namespace>> | tac
于 2019-10-28T18:24:53.173 回答
2

我为这些排序目的创建了KUBESORT 。
请试一试,

https://github.com/AATHITH/kubesort

于 2020-03-26T04:31:48.000 回答
0

如果您只想要最近创建的 pod 的名称;

POD_NAME=$(kubectl get pod --sort-by=.metadata.creationTimestamp -o name | cut -d/ -f2 | tail -n 1)
echo "${POD_NAME}"
于 2022-01-31T18:04:46.733 回答