Kubernetes 如何在kubectl get nodes中从输出中排除污染节点?
我尝试检查有多少个节点已准备就绪(不包括受污染的NoSchedule)并将编号写入文本文件output.txt 你能给我一些建议吗Kubernetes 如何在kubectl get nodes中从输出中排除污染节点?,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我尝试检查有多少个节点已准备就绪(不包括受污染的NoSchedule)并将编号写入文本文件output.txt 你能给我一些建议吗 kubectl get nodes | grep Ready | grep -v NotReady | grep -v NoSchedule \ | wc -l > output.txt 此命令将为您完成以下任务: 注: 当grep包括行时,grep-v排除行 wc-l计算行数 输出的行数与您描述的条件的节点数相同 此命令将为您完成以下任务: 注:
kubectl get nodes | grep Ready | grep -v NotReady | grep -v NoSchedule \
| wc -l > output.txt
此命令将为您完成以下任务:
注:
- 当
包括行时,grep
排除行grep-v
计算行数wc-l
- 输出的行数与您描述的条件的节点数相同
- 当
包括行时,grep
排除行grep-v
计算行数wc-l
- 输出的行数与您描述的条件的节点数相同
我相信
kubectl-get-nodes
不会显示污点,所以不能只使用grep
进行过滤。在这种情况下,您可以将输出设置为json并使用(或yaml和use)来处理它:
kubectl get nodes -o json | jq -c '.items[].spec.taints' | grep -v NoSchedule | wc -l > output.txt
-c
在jq
中的选项是在一行中输出每个元素,而不是漂亮地打印它,以防有多个污点。其余部分已经在中解释过了,我相信kubectl get nodes
不会显示污点,所以不能只使用grep
进行过滤。在这种情况下,您可以将输出设置为json并使用(或yaml和use)来处理它:
kubectl get nodes -o json | jq -c '.items[].spec.taints' | grep -v NoSchedule | wc -l > output.txt
-c
在jq
中的选项是在一行中输出每个元素,而不是漂亮地打印它,以防有多个污点。其余部分已经在中解释过。以下命令可以在没有jq或没有安装jq的情况下使用
kubectl get nodes --selector='!node-role.kubernetes.io/master' --no-headers | grep -v SchedulingDisabled | wc -l > output.txt
以下命令可以在没有jq或未安装jq的情况下使用
kubectl get nodes --selector='!node-role.kubernetes.io/master' --no-headers | grep -v SchedulingDisabled | wc -l > output.txt
获取节点的完全证明查询,但节点上有污染影响NoSchedule
kubectl get node -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints[*].effect}{"\n"}{end}' | grep -v NoSchedule | wc -l
获取节点的完全证明查询,但节点上有污染影响NoSchedule
kubectl get node -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints[*].effect}{"\n"}{end}' | grep -v NoSchedule | wc -l