Как посмотреть логи в Kubernetes

«Как посмотреть логи в Kubernetes» — вопрос из категории CI/CD и DevOps, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В моей практике работы с CI/CD-пайплайнами и развертыванием приложений в Kubernetes, просмотр логов — это рутина для отладки падений сборок или проблем с деплоем. Я использую kubectl logs. Основные команды:

  1. Логи конкретного пода: Сначала нахожу нужный под командой kubectl get pods -n <namespace>, затем смотрю его логи.
    kubectl logs <pod-name> -n <namespace>
  2. Логи в реальном времени (follow): Незаменимо при отладке запуска контейнера или отслеживании live-ошибок.
    kubectl logs -f <pod-name> -n <namespace>
  3. Логи за определенный период: Например, чтобы увидеть, что происходило в последний час.
    kubectl logs --since=1h <pod-name>
  4. Логи предыдущего запуска пода: Критично, если контейнер упал и был перезапущен kubelet'ом. Это позволяет увидеть причину первоначального падения.
    kubectl logs -p <pod-name>

Для более сложного анализа, особенно когда подов много (например, в StatefulSet), я использую утилиту stern для агрегированного просмотра логов по лейблам:

stern -n <namespace> app=my-app

В продакшн-среде мы настраиваем централизованный сбор логов через стэк Loki + Grafana, что позволяет строить дашборды, писать LogQL-запросы и эффективно расследовать инциденты.