Ich versuche, den ersten Pod aus einer Bereitstellung (nach Labels gefiltert) mit dem Status „ Running " abzurufen – derzeit konnte ich nur Folgendes erreichen, was mir nur den ersten Pod innerhalb einer Bereitstellung (nach Labels gefiltert) liefert – und nicht sicher ein laufender Pod, z. B. könnte es auch ein beendender sein:
kubectl get pod -l "app=myapp" -l "tier=webserver" -l "namespace=test"
-o jsonpath="{.items[0].metadata.name}"
Wie ist es möglich
a) bekomme nur eine Pod-Liste von "RUNNING" Pods und (konnte hier oder bei Google nichts finden)
b) Wählen Sie den ersten aus dieser Liste aus. (das mache ich gerade)
Grüße
Update: Ich habe den zuvor in den Kommentaren geposteten Link bereits mit folgendem versucht:
kubectl get pod -l "app=ms-bp" -l "tier=webserver" -l "namespace=test"
-o json | jq -r '.items[] | select(.status.phase = "Running") |.items[0].metadata.name'
das Ergebnis ist 4x "null" - es gibt 4 laufende Pods.
Edit2: Gelöst - siehe Kommentare
Lösung des Problems
Seit kubectl 1.9 haben Sie die Möglichkeit, ein --field-selector
Argument zu übergeben (siehe https://github.com/kubernetes/kubernetes/pull/50140 ). Z.B
kubectl get pod -l app=yourapp --field-selector=status.phase==Running -o jsonpath="{.items[0].metadata.name}"
Keine Kommentare:
Kommentar veröffentlichen