我尝试检查多少节点已就绪(不包括受污染的节点NoSchedule),并将数量写入文本文件output.txt。你能给我给予吗?
nwlls2ji1#
我相信kubectl get nodes不会显示污点,所以你不能只使用grep进行过滤。在这种情况下,你可以将输出设置为json并使用jq(或yaml并使用yq)来处理它:
kubectl get nodes
grep
kubectl get nodes -o json | jq -c '.items[].spec.taints' | grep -v NoSchedule | wc -l > output.txt
字符串jq中的-c选项是在单行中输出每个元素,而不是漂亮地打印它,以防你有多个污点。其余的已经在Abdennour TOUMI的回答中解释过了
jq
-c
zc0qhyus2#
kubectl get nodes | grep Ready | grep -v NotReady | grep -v NoSchedule \ | wc -l > output.txt
字符串这个命令将为您完成这项工作:备注:
grep -v
wc -l
vmjh9lq93#
完全证明查询以获取节点,但节点对其具有污点效应NoSchedule
kubectl get node -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints[*].effect}{"\n"}{end}' | grep -v NoSchedule | wc -l
字符串
ojsjcaue4#
下面的命令可以在没有jq或没有安装jq的情况下使用。
kubectl get nodes --selector='!node-role.kubernetes.io/master' --no-headers | grep -v SchedulingDisabled | wc -l > output.txt
ecfsfe2w5#
一个衬里
kubectl describe nodes | grep -i taint | grep -v NoSchedule | wc -l
5条答案
按热度按时间nwlls2ji1#
我相信
kubectl get nodes
不会显示污点,所以你不能只使用grep
进行过滤。在这种情况下,你可以将输出设置为json并使用jq(或yaml并使用yq)来处理它:字符串
jq
中的-c
选项是在单行中输出每个元素,而不是漂亮地打印它,以防你有多个污点。其余的已经在Abdennour TOUMI的回答中解释过了zc0qhyus2#
字符串
这个命令将为您完成这项工作:
备注:
grep
包括行,而grep -v
不包括行wc -l
计算行数。vmjh9lq93#
完全证明查询以获取节点,但节点对其具有污点效应NoSchedule
字符串
ojsjcaue4#
下面的命令可以在没有jq或没有安装jq的情况下使用。
字符串
ecfsfe2w5#
一个衬里
字符串