Команда 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

Возвращает затронутые модули (включая те, которые вышли из строя). Мне этого достаточно для очистки, но я не могу специально выбрать только «Завершено» по другим причинам, но это максимально близко к тому, что мне нужно.

Другие вопросы по тегам