Viele Admin-Operationen werden erleichtert, indem eine Liste mit den Namen von Dingen abgerufen wird, zB in eine Shell-Variable. Siehe unten für ein Beispiel. Anstatt eine Vorlage zu hacken, sollte die Frage nach den Namen ein normales Flag sein.
% nodes=$(kubectl get nodes -lfoo=bar -otemplate --template='{{range .items}}{{.metadata.name}} {{end}}') % für Knoten in $nodes; tun for> echo $node für> erledigt # Plausibilitätsprüfung vor Beginn der Arbeit. % echo $nodes | wc-w 4 % für Knoten in $nodes; tun for> kubectl drain --force $node für> Wartungsskript $node for> kubectl undrain $node für> schlafen 900 für> erledigt
Sie könnten jsonpath verwenden, um es etwas kürzer zu machen, aber immer noch nicht großartig
k get no -o jsonpath="{.items[*].metadata.name}" | xargs -d ' ' -I {} kubectl drain {}
Versuchen Sie es kubectl get no -o name
Sie wollen -o name
Am Montag, 2. November 2015 um 16:37 Uhr, Matt Liggett [email protected]
schrieb:
Viele Verwaltungsvorgänge werden erleichtert, indem eine Liste mit den Namen von abgerufen wird
Dinge, zB in eine Shell-Variable. Siehe unten für ein Beispiel. Eher, als
Eine Vorlage zu hacken und nur nach den Namen zu fragen, sollte eine normale Flagge sein.% nodes=$(kubectl get nodes -lfoo=bar -otemplate --template='{{range .items}}{{.metadata.name}} {{end}}')
% für Knoten in $nodes; tun
for> echo $node
für> erledigtGesundheitscheck vor Arbeitsbeginn.
% echo $nodes | wc-w
4% für Knoten in $nodes; tun
for> kubectl drain --force $node
für> Wartungsskript $node
for> kubectl undrain $node
für> schlafen 900
für> erledigt—
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/kubernetes/kubernetes/issues/16700.
Hilfreichster Kommentar
Versuchen Sie es
kubectl get no -o name