Kubernetes sortieren die Schoten nach Alter

76

Ich kann meine Kubernetes-Pods nach Namen sortieren, indem ich:

kubectl get pods --sort-by=.metadata.name

Wie kann ich sie (oder andere Ressourcen) nach Alter sortieren kubectl?

Eugene Platonov
quelle

Antworten:

117

Pods haben den Status, mit dem Sie startTime ermitteln können.

Ich denke so etwas kubectl get po --sort-by=.status.startTimesollte funktionieren.

Sie könnten auch versuchen:

  1. kubectl get po --sort-by='{.firstTimestamp}'.
  2. kubectl get pods --sort-by=.metadata.creationTimestamp Danke @chris

Auch anscheinend ist in 1.7 Release Sort-by kaputt.

https://github.com/kubernetes/kubectl/issues/43

Hier ist der Fehlerbericht: https://github.com/kubernetes/kubernetes/issues/48602

Hier ist die PR: https://github.com/kubernetes/kubernetes/pull/48659/files

vjdhama
quelle
@vjdhama Gibt es eine Möglichkeit, eine vollständige Liste der Dinge zu erhalten, die auf diese Weise sortiert werden können?
Matthew
Was meinst du mit vollständiger Liste der Dinge? Sie meinen alle Arten von Ressourcen.
Vjdhama
21
Gibt es eine Möglichkeit, die Sortierung umzukehren? So können Sie zum Beispiel eine Uhr kubectl machen und die neuesten Pods oben bekommen?
Joe J.
2
Dies funktioniert nur, wenn ich auch die Flags -o jsonoder -o wideeinbinde. Getestet am 1.7.x und 1.9.x
sg
3
@JoeJ Die kubectl-Dokumente haben keine umgekehrte Reihenfolge, aber Sie können dies mit dem Befehl tail tun. kubectl get pods --sort-by=.metadata.creationTimestamp | tail -r | head -n 1Ich habe tail -rdie Ausgabe zurückgesetzt. Dann head -n 1drucken Sie den neuesten Pod
dmowzy
28
kubectl get pods --sort-by=.metadata.creationTimestamp
Chris Stryczynski
quelle
Ich bekomme eine error: unknown type *api.Pod, expected unstructured in map[reflect.Type]*printers.handlerEntry{}Antwort
SG
Dies ist nützlich zum Sortieren der ConfigMaps : kubectl get cm --sort-by=.metadata.creationTimestamp
Ivan Aracki
0

Wenn Sie sie nach dem Alter in umgekehrter Reihenfolge sortieren möchten:

kubectl get po --sort-by=.metadata.creationTimestamp -n <<namespace>> | tac
imriss
quelle
0

Ich habe KUBESORT genau für diese Art von Sortierzwecken erstellt.
Bitte versuchen Sie es,

https://github.com/AATHITH/kubesort

AATHITH RAJENDRAN
quelle
0

Wenn Sie versuchen, den zuletzt erstellten Pod zu erhalten, können Sie Folgendes tun

kubectl get pods --sort-by=.metadata.creationTimestamp -o jsonpath='{.items[-1:].metadata.name}'

Beachten Sie, dass das -1:letzte Element in der Liste abgerufen wird. Anschließend geben wir den Pod-Namen zurück

Antony Denyer
quelle