Ответ
Команда kubectl describe — это основной инструмент для получения детализированной информации о состоянии и конфигурации любого ресурса в кластере. В отличие от kubectl get, который показывает сводку, describe агрегирует данные из разных источников, предоставляя полную картину для отладки.
Пример использования:
kubectl describe pod/my-app-pod -n production
Типичный вывод включает:
- Состояние (Status): Текущая фаза пода (Pending, Running, Succeeded, Failed, Unknown).
- События (Events): Хронология ключевых событий жизненного цикла (например,
Scheduled,Pulled,Created,Started). Это первое, что я смотрю при проблемах с запуском. - Контейнеры: Состояние каждого контейнера (Ready, Restart Count), его образ и порты.
- Условия (Conditions): Детализированные статусы, такие как
PodScheduled,Initialized,ContainersReady,Ready. - Конфигурация: Назначенные метки (Labels), аннотации (Annotations), запрошенные/ограниченные ресурсы (CPU/Memory), примонтированные тома (Volumes).
На практике я использую describe ежедневно для быстрой диагностики: почему под завис в Pending (нехватка ресурсов, проблемы с PVC), почему контейнеры перезапускаются (CrashLoopBackOff) или почему сервис не получает трафик (проблемы с Readiness Probe).