获取最近创建的窗格的名称

时间:2018-08-13 19:38:51

标签: kubernetes openshift jsonpath

在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 $2}')

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

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

2 个答案:

答案 0 :(得分:2)

在Kubernetes前端,{8} 1.7应该有效,{8} 1.7:it was fixed for 1.8除外。

Kubernetes sort pods by age”也提到

kubectl get po --sort-by=.status.startTime

由于Openshift 3.9(2018年3月)是最近的版本,因此即使kubectl get pods --sort-by=.metadata.creationTimestamp 并不完全兼容,那些kubectl命令也应该起作用。

答案 1 :(得分:0)

尝试一下:

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