I can sort my Kubernetes pods by name using:
kubectl get pods --sort-by=.metadata.name
How can I sort them (or other resoures) by age using kubectl
?
I can sort my Kubernetes pods by name using:
kubectl get pods --sort-by=.metadata.name
How can I sort them (or other resoures) by age using kubectl
?
Pods have status, which you can use to find out startTime.
I guess something like kubectl get po --sort-by=.status.startTime
should work.
You could also try:
kubectl get po --sort-by='{.firstTimestamp}'
.kubectl get pods --sort-by=.metadata.creationTimestamp
Thanks @chrisAlso apparently in Kubernetes 1.7 release, sort-by is broken.
https://github.com/kubernetes/kubectl/issues/43
Here's the bug report : https://github.com/kubernetes/kubernetes/issues/48602
Here's the PR: https://github.com/kubernetes/kubernetes/pull/48659/files
error: couldn't find any field with path "{.status.startTime}" in the list of objects
- because the pods are still pending perhaps? –
Eddo -o json
or -o wide
flags. Tested on 1.7.x and 1.9.x –
Celle kubectl get pods --sort-by=.metadata.creationTimestamp | tail -r | head -n 1
I used tail -r
to revert the output. Then head -n 1
to print the newest pod –
Northnortheast .metadata.creationTimestamp
is a better choice as it includes the pending containers which naturally have zero .status.startTime
and would therefore appear at the top of the list, not the bottom. –
Samuelsamuela kubectl get pods --sort-by=.metadata.creationTimestamp
error: unknown type *api.Pod, expected unstructured in map[reflect.Type]*printers.handlerEntry{}
response –
Celle kubectl get cm --sort-by=.metadata.creationTimestamp
–
Rhineland If you are trying to get the most recently created pod you can do the following
kubectl get pods --sort-by=.metadata.creationTimestamp -o jsonpath='{.items[-1:].metadata.name}'
Note the -1:
gets the last item in the list, then we return the pod name
If you want to sort them in reverse order based on the age:
kubectl get po --sort-by=.metadata.creationTimestamp -n <<namespace>> | tac
This new command (since Kubernetes 1.23) worked perfectly for me:
kubectl alpha events
In contrast, neither of these worked for me (got unsorted events):
kubectl get events --sort-by='.lastTimestamp'
kubectl get events --sort-by=.metadata.creationTimestamp
I also saw reports that the above failed due to missing event properties: https://github.com/kubernetes/kubernetes/issues/29838#issuecomment-991070746
If you want just the name of most-recently-created pod;
POD_NAME=$(kubectl get pod --sort-by=.metadata.creationTimestamp -o name | cut -d/ -f2 | tail -n 1)
echo "${POD_NAME}"
I wanted to see all pods that were updated in the past 24 hours. This worked perfectly well and doesn't rely on a particular version of Kubernetes or Kubernetes advanced parameters besides get pods:
kubectl get pods | awk '{print $1 " : " $5}' | grep -E ':\s([1-9]|[12][0-4])h$' | sort -k3,3
© 2022 - 2024 — McMap. All rights reserved.