【发布时间】:2019-01-20 14:32:10
【问题描述】:
在 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 标记了这个问题,因为它可能以类似的方式(没有-l app=my_app)适用于kubectl(而不是oc)。
【问题讨论】:
-
FWIW,您可能还想根据身份获得资格。
oc get pods -o jsonpath='{.items[?(@.status.phase=="Running")].metadata.name}'这种方式只显示 pod 实际运行的时间,而不显示其他状态的 pod。
标签: kubernetes openshift jsonpath