kubectl get pods: Список подов с фильтрацией по namespace, label, статусу
Список подов с фильтрацией по namespace, label, статусу
Вот шпаргалка, которую я сам держу под рукой. kubectl get pods — это как ls для кубера, основа основ.
Базовый синтаксис
Самая простая команда, которая показывает поды в текущем неймспейсе.
kubectl get pods
Здесь kubectl — это клиент, get — действие (получить), pods — тип ресурса. Вывод показывает ключевое: имя пода, готовность, статус, количество рестартов и возраст.
Полезные флаги
-A или --all-namespaces
Когда нужно быстро оценить общую картину по всему кластеру. Например, проверить, нет ли проблемных подов в системных неймспейсах.
kubectl get pods -A
-n
Работаешь с конкретным сервисом — сразу смотри в его неймспейсе. Не переключай контекст.
kubectl get pods -n monitoring
-l
Фильтрация по лейблам — основной способ работы. Все сервисы так помечены.
kubectl get pods -l app=nginx,component=frontend
-o wide
Когда мало информации из get pods. Покажет IP пода и ноду, на которой он работает. Незаменимо для сетевой отладки.
kubectl get pods -o wide
--field-selector
Прямая фильтрация по полям объекта, а не по лейблам. Особенно полезно для фильтрации по статусу или ноде.
kubectl get pods --field-selector=status.phase=Running
Типичные сценарии
1. Найти все поды, которые крешлупятся. Сначала смотрим на поды с большим числом рестартов во всем кластере.
kubectl get pods -A --sort-by='{.status.containerStatuses[0].restartCount}' | tail -10
2. Найти все поды на конкретной ноде для её дренирования. Перед выводом ноды из эксплуатации нужно понять, что на ней работает.
kubectl get pods -A -o wide --field-selector spec.nodeName=node-01
3. Быстро найти все поды в статусе Pending или Error.
Проблемные поды, которые не могут запуститься.
kubectl get pods -A --field-selector="status.phase!=Running"
Частые ошибки
Путаница флагов -n и -A.
Запуск kubectl get pods -n (без значения) приводит к ошибке. Хуже, если использовать -A и -n вместе — -A имеет приоритет, и флаг -n просто игнорируется, что может сбить с толку.
Ожидание реального времени.
kubectl get pods — это моментальный снимок состояния. Для наблюдения за изменениями (например, за перезапуском) нужно использовать watch:
watch kubectl get pods -n production