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?

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 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

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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.