如何列出集群中没有污点的就绪节点数

Nax*_*axi -1 kubernetes

想要列出没有任何污染的就绪节点的数量。我使用以下查询获取节点列表:

kubectl get nodes -o json|jq -jr '{.items[]|select(.spec.taints|not)|select(.status.conditions[].type=="Ready" and .status.conditions[].status="True")|.metadata.name+"\n"}'
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出

node01
node01
Run Code Online (Sandbox Code Playgroud)

如何从此查询中获取节点数而不是实际节点名称?

kal*_*opa 5

将此用于“无污点”的节点数量:

kubectl get nodes -o json | jq '.items[] | select(.spec.taints|not) | .metadata.name' | wc -l
Run Code Online (Sandbox Code Playgroud)

获取状态为“Ready”且“No taint”的节点数量:

kubectl get nodes -o json|jq -r '.items[]|select(.status.conditions[].type=="Ready")|select(.spec.taints|not).metadata.name' | wc -l
Run Code Online (Sandbox Code Playgroud)