Команда AKS Kubectl не возвращает завершенные модули
Я использую AKS с Kubernetes v1.25.6 и начал видеть ряд модулей со статусом «Завершено». Насколько я понимаю, они генерируются, когда код выхода 0 возвращается в процессе, в котором работает модуль, что для рассматриваемых модулей не имеет смысла. У меня также сложилось впечатление, что состояние завершения позволит мне использовать такую команду, как kubectl logs podname, чтобы проверить, почему модуль «завершен».
Однако мне сказали, что ресурс не может быть найден. Поэтому я решил настроить ведение журнала в учетной записи хранения из AKS, используя настройки диагностики, чтобы посмотреть, смогу ли я найти оттуда данные.
Итак, мой следующий шаг — очистить все завершенные модули, и я увидел следующую команду:
kubectl delete pod --field-selector=status.phase==Succeeded
Я обновил эту команду следующим образом (чтобы увидеть, что будет выбрано, прежде чем переключаться на удаление)
kubectl get pod --field-selector=status.phase==Completed
Однако мне говорят, что «Ресурсы не найдены», несмотря на то, что команда kubectl get pod показывает мне почти 20 завершенных модулей.
Если я изменю команду на:
kubectl get pod --field-selector=status.phase==Running
Мне показывают все работающие капсулы. Почему это не работает для готовых модулей? Это проблема AKS или команда неверна?
1 ответ
Получается, что «Завершено» считается неудачным, а не Успешным, что кажется довольно неинтуитивным, поскольку «Завершено» не означает ошибку или неудачу.
Изменение на
kubectl get pod --field-selector=status.phase==Failed
Возвращает затронутые модули (включая те, которые вышли из строя). Мне этого достаточно для очистки, но я не могу специально выбрать только «Завершено» по другим причинам, но это максимально близко к тому, что мне нужно.