【发布时间】:2020-05-06 10:30:37
【问题描述】:
我有这个命令来列出未运行的Kubernetes pod:
sudo kubectl get pods -n my-name-space | grep -v Running
是否有返回未运行 pod 计数的命令?
【问题讨论】:
我有这个命令来列出未运行的Kubernetes pod:
sudo kubectl get pods -n my-name-space | grep -v Running
是否有返回未运行 pod 计数的命令?
【问题讨论】:
如果您将... | wc -l 添加到该命令的末尾,它将打印grep 命令输出的行数。这可能包括标题行,但你可以取消它。
kubectl get pods -n my-name-space --no-headers \
| grep -v Running \
| wc -l
如果您有像 jq 这样的 JSON 处理工具可用,您可以获得更可靠的输出(如果 Evicted pod 恰好在其姓名)。你应该能够做类似(未经测试)的事情
kubectl get pods -n my-namespace -o json \
| jq '.items | map(select(.status.phase != "Running")) | length'
如果你会做很多这样的事情,使用Kubernetes API 编写一个非 shell 程序会更加健壮;您通常可以使用 SDK 调用执行“获取 pod”之类的操作,并获取您可以过滤的 pod 对象列表。
【讨论】:
无需任何外部工具即可完成:
kubectl get po \
--field-selector=status.phase!=Running \
-o go-template='{{len .items}}'
【讨论】: