Если вы добавите ... | wc -l
в конец этой команды, будет напечатано количество строк, выводимых командой grep
. Это, вероятно, будет включать строку заголовка, но вы можете подавить это.
kubectl get pods -n my-name-space --no-headers \
| grep -v Running \
| wc -l
Если у вас есть инструмент обработки JSON, например jq
, вы можете получить более надежный output (вызов grep
получит неверный ответ, если в имени модуля Evicted
есть строка Running
). Вы должны иметь возможность делать что-то вроде (непроверено)
kubectl get pods -n my-namespace -o json \
| jq '.items | map(select(.status.phase != "Running")) | length'
Если вы будете делать много этого, написание программы без оболочки с использованием Kubernetes API будет более сложным. прочный; обычно вы можете выполнить такую операцию, как «получение модулей», используя вызов SDK, и получить обратно список объектов модулей, которые можно фильтровать.