获取最近创建的 pod 的名称

Get name of most recently created pod

在 OpenShift 中,有没有比这个更优雅的方法来获取应用程序 my_app 中最近创建的 pod 的名称?

name=$(oc get pods -l app=my_app -o=jsonpath='{range.items[*]}{.status.startTime}{"\t"}{.metadata.name}{"\n"}{end}' | sort -r | head -1 | awk '{print }')

思路是按.status.startTime排序,输出一个.metadata.name。到目前为止,我还没有成功地同时使用 oc get--sort-by-o jsonpath 这两个选项,所以我在这个版本中退回到了 Unix 管道。

我正在使用 OpenShift v3.9。我也为 Kubernetes 标记了这个问题,因为它可能以类似的方式(没有 -l app=my_app)适用于 kubectl(而不是 oc)。

在 Kubernetes 前端,kubectl get po --sort-by=.status.startTime 应该可以工作,但在 K8s 1.7 中除外:it was fixed for 1.8.

"" 还提到

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

由于 Openshift 3.9(2018 年 3 月)是相当新的,因此即使 oc 不完全兼容,那些 kubectl 命令也应该有效。

试试这个:

kubectl get pods --sort-by=.metadata.creationTimestamp -o jsonpath="{.items[0].metadata.name}"