#kubernetes #kubectl #k3s
#kubernetes #kubectl #k3s
Вопрос:
У меня есть кластер k3s с несколькими запущенными модулями. Я хочу получить все модули со статусом запуска, содержащие grafana в своем имени.
Из документов похоже, что я могу использовать флаг выбора поля для его достижения (был введен в версии v1.9). Но когда я попробовал, это не сработало.
Я знаю, что могу принудительно удалить модуль со статусом завершения, чтобы получить то, что я хочу. Здесь я хочу знать, почему моя команда не сработала так, как ожидалось? Я что-то пропустил?
Кстати, завершающий модуль существовал некоторое время. Я считаю, что он застрял. Но опять же, это не интересует этот вопрос.
Ответ №1:
Если вы посмотрите документацию k8s по pod-lifecycle, вы увидите, что status.phase может иметь только 5 разных значений, и ни одно из них не является Terminating
. Это означает, что состояние завершения не отражается в этом поле и, следовательно, фильтрация по полю фазы бесполезна.
Статус завершения отображается в разделе .status.containerStatuses.state
(состояния контейнера в документах), хотя эта метка поля, похоже, не поддерживается фильтром.
Итак, что вы можете сделать?
Самое простое, что вы можете сделать, это использовать grep дважды:
kubectl get pods | grep grafana | grep Running