通过获取事物名称的列表(例如,放入 shell 变量),可以使许多管理操作变得更容易。 请参阅下面的示例。 而不是破解模板,只要求名称应该是一个正常的标志。
% nodes=$(kubectl get nodes -lfoo=bar -otemplate --template='{{range .items}}{{.metadata.name}} {{end}}') $nodes 中的节点百分比; 做 对于>回声$节点 为>完成 # 开始工作前的健全性检查。 % 回声 $nodes | wc -w 4 $nodes 中的节点百分比; 做 for> kubectl 排水 --force $node 对于>维护脚本$节点 for> kubectl undrain $节点 对于>睡眠900 为>完成
你可以使用 jsonpath 让它更短一点,但仍然不是很好
k get no -o jsonpath="{.items[*].metadata.name}" | xargs -d ' ' -I {} kubectl drain {}
试试kubectl get no -o name
你想要-o name
2015 年 11 月 2 日星期一下午 4:37,Matt Liggett通知@github.com
写道:
通过获取名称列表,许多管理操作变得更容易
东西,例如放入一个shell变量。 请参阅下面的示例。 而不是
破解模板,只要求名称应该是一个正常的标志。% nodes=$(kubectl get nodes -lfoo=bar -otemplate --template='{{range .items}}{{.metadata.name}} {{end}}')
$nodes 中的节点百分比; 做
对于>回声$节点
为>完成开始工作前的健康检查。
% 回声 $nodes | wc -w
4$nodes 中的节点百分比; 做
for> kubectl 排水 --force $node
对于>维护脚本$节点
for> kubectl undrain $节点
对于>睡眠900
为>完成—
直接回复此邮件或在 GitHub 上查看
https://github.com/kubernetes/kubernetes/issues/16700。
最有用的评论
试试
kubectl get no -o name