Ответ
В моей практике работы с CI/CD-пайплайнами и развертыванием приложений в Kubernetes, просмотр логов — это рутина для отладки падений сборок или проблем с деплоем. Я использую kubectl logs. Основные команды:
- Логи конкретного пода: Сначала нахожу нужный под командой
kubectl get pods -n <namespace>, затем смотрю его логи.kubectl logs <pod-name> -n <namespace> - Логи в реальном времени (follow): Незаменимо при отладке запуска контейнера или отслеживании live-ошибок.
kubectl logs -f <pod-name> -n <namespace> - Логи за определенный период: Например, чтобы увидеть, что происходило в последний час.
kubectl logs --since=1h <pod-name> - Логи предыдущего запуска пода: Критично, если контейнер упал и был перезапущен kubelet'ом. Это позволяет увидеть причину первоначального падения.
kubectl logs -p <pod-name>
Для более сложного анализа, особенно когда подов много (например, в StatefulSet), я использую утилиту stern для агрегированного просмотра логов по лейблам:
stern -n <namespace> app=my-app
В продакшн-среде мы настраиваем централизованный сбор логов через стэк Loki + Grafana, что позволяет строить дашборды, писать LogQL-запросы и эффективно расследовать инциденты.