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.