获取最近创建的 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}"
在 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}"