【发布时间】:2017-12-31 19:01:12
【问题描述】:
我可以使用以下方法按名称对我的 Kubernetes pod 进行排序:
kubectl get pods --sort-by=.metadata.name
如何使用kubectl按年龄对它们(或其他资源)进行排序?
【问题讨论】:
标签: kubernetes kubectl kubernetes-pod
我可以使用以下方法按名称对我的 Kubernetes pod 进行排序:
kubectl get pods --sort-by=.metadata.name
如何使用kubectl按年龄对它们(或其他资源)进行排序?
【问题讨论】:
标签: kubernetes kubectl kubernetes-pod
Pod 有状态,您可以使用它来找出 startTime。
我想像kubectl get po --sort-by=.status.startTime 这样的东西应该可以工作。
你也可以试试:
kubectl get po --sort-by='{.firstTimestamp}'。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
【讨论】:
-o json 或 -o wide 标志时才有效。在 1.7.x 和 1.9.x 上测试
kubectl get pods --sort-by=.metadata.creationTimestamp | tail -r | head -n 1 我使用 tail -r 来恢复输出。然后head -n 1打印最新的pod
kubectl get pods --sort-by=.metadata.creationTimestamp
【讨论】:
error: unknown type *api.Pod, expected unstructured in map[reflect.Type]*printers.handlerEntry{} 的回复
kubectl get cm --sort-by=.metadata.creationTimestamp
如果你想根据年龄倒序排列:
kubectl get po --sort-by=.metadata.creationTimestamp -n <<namespace>> | tac
【讨论】:
我创建 KUBESORT 正是为了这些排序目的。
请试一试,
【讨论】:
如果您尝试获取最近创建的 pod,您可以执行以下操作
kubectl get pods --sort-by=.metadata.creationTimestamp -o jsonpath='{.items[-1:].metadata.name}'
注意-1: 获取列表中的最后一项,然后我们返回 pod 名称
【讨论】:
如果您只想要最近创建的 pod 的名称;
POD_NAME=$(kubectl get pod --sort-by=.metadata.creationTimestamp -o name | cut -d/ -f2 | tail -n 1)
echo "${POD_NAME}"
【讨论】: