Ответ
В Kubernetes для просмотра логов используется команда kubectl logs. Это основной инструмент для отладки работы контейнеров.
Базовые команды:
-
Просмотр логов пода:
kubectl logs <pod-name> -n <namespace>Если под находится в namespace
default, флаг-nможно опустить. -
Просмотр логов конкретного контейнера (если в поде несколько контейнеров):
kubectl logs <pod-name> -c <container-name> -n <namespace> -
Потоковый вывод логов (follow):
kubectl logs -f <pod-name> -n <namespace> -
Просмотр логов предыдущего экземпляра пода (например, после сбоя и перезапуска):
kubectl logs --previous <pod-name> -n <namespace> -
Просмотр логов за последний определенный период:
kubectl logs --since=1h <pod-name> -n <namespace> # Логи за последний час
Практический workflow:
# 1. Найти нужный под
kubectl get pods -n my-app-namespace
# 2. Просмотреть его логи
kubectl logs my-app-deployment-7cbbf6b9f8-abc12 -n my-app-namespace
# 3. Если под постоянно перезапускается (CrashLoopBackOff), посмотреть логи упавшего экземпляра
kubectl logs --previous my-app-deployment-7cbbf6b9f8-abc12 -n my-app-namespace
# 4. Следить за логами в реальном времени при деплое
kubectl logs -f my-app-deployment-7cbbf6b9f8-abc12 -n my-app-namespace
Альтернативы и дополнения:
- Сторонние инструменты (Lens, k9s): Предоставляют удобный GUI для просмотра логов.
- Централизованное логирование: Для продакшн-среды обязательно настраивается стек (например, EFK: Elasticsearch, Fluentd/Fluent Bit, Kibana или Loki/Grafana) для агрегации, хранения и анализа логов со всех узлов и подов.