Использование kubectl как мне выбрать ресурс на основе некоторых критериев?

#kubectl

#kubectl

Вопрос:

Например, я могу

 $ kubectl get jobs --sort-by='.status.active'
 

что дает мне список заданий. Их статус может быть 0 и 1, поэтому сначала идут задания с нулями, затем с единицами. Как мне выбрать вместо сортировки? Например, отображать только те, статус которых равен единице.

Ответ №1:

Форматирование вывода

kubectl это --sort-by скорее способ форматирования выходных данных, аналогичный тому, как вы можете выбрать, какие поля отображать в выходных данных.

Фильтр с использованием селекторов полей

Для некоторых предопределенных полей вы можете использовать селекторы полей для фильтрации ваших выходных данных.

Пример

 kubectl get pods --field-selector status.phase=Running
 

Метки и селекторы

Наиболее распространенным и настраиваемым способом выбора подмножеств ресурсов является сознательное добавление меток к вашим ресурсам. Например, метки для app-name или team-name.

Затем вы можете использовать селекторы, например, для выбора подмножества ресурсов с помощью kubectl

Пример

 kubectl get pods -l environment=production,tier=frontend
 

Комментарии:

1. Сначала я пытался составить список выполненных заданий. kubectl показывает «Завершено» в столбце статуса, и я попытался kubectl get pods --field-selector status.phase=Completed , но это не сработало. Я думаю, чего мне не хватает, так это способа узнать, что я могу фильтровать — что это за поля и каковы их возможные значения. Я kubectl get pod my-pod -ojson просмотрел выходные данные и понял, что для завершенной работы следует использовать status.phase=Succeeded .