首页 > 解决方案 > 获取未运行的 Kubernetes pod 数量

问题描述

我有这个命令来列出Kubernetes未运行的 pod:

sudo kubectl get pods -n my-name-space | grep -v Running

是否有一个命令会返回未运行的 pod 计数?

标签: kuberneteskubernetes-pod

解决方案


如果添加... | wc -l到该命令的末尾,它将打印grep命令输出的行数。这可能包括标题行,但您可以取消它。

kubectl get pods -n my-name-space --no-headers \
  | grep -v Running \
  | wc -l

如果你有一个可用的 JSON 处理工具jq,你可以获得更可靠的输出(如果pod 恰好在其名称中包含字符串,则grep调用将得到不正确的答案)。你应该能够做类似的事情(未经测试)EvictedRunning

kubectl get pods -n my-namespace -o json \
  | jq '.items | map(select(.status.phase != "Running")) | length'

如果你会做很多这样的事情,使用Kubernetes API编写一个非 shell 程序会更加健壮;您通常可以使用 SDK 调用执行“获取 pod”之类的操作,并获取可以过滤的 pod 对象列表。


推荐阅读