Получите количество неработающих подов Kubernetes - PullRequest
0 голосов
/ 06 мая 2020

У меня есть эта команда для вывода списка Kubernetes не запущенных модулей:

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

Есть ли команда, которая возвращает количество неработающих модулей?

1 Ответ

2 голосов
/ 06 мая 2020

Если вы добавите ... | 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, и получить обратно список объектов модулей, которые можно фильтровать.

...