Как просмотреть логи приложения в OpenShift?

«Как просмотреть логи приложения в OpenShift?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В OpenShift есть несколько основных способов просмотра логов подов и контейнеров.

1. Через CLI (oc):

  • Логи текущего пода:
    oc logs <pod_name> -n <namespace>
  • Логи конкретного контейнера в поде (если их несколько):
    oc logs <pod_name> -c <container_name> -n <namespace>
  • Потоковый вывод логов (аналог tail -f):
    oc logs -f <pod_name> -n <namespace>
  • Логи предыдущего экземпляра пода (если под перезапустился):
    oc logs --previous <pod_name> -n <namespace>

2. Через веб-консоль OpenShift:

  • Перейдите в Workloads → Pods.
  • Выберите нужный под.
  • На вкладке Logs отобразятся логи контейнера.

3. Через централизованное логирование (EFK-стек): Если в кластере развернут Elasticsearch, Fluentd и Kibana (EFK), логи можно анализировать через Kibana с расширенными возможностями поиска и визуализации.

Практический пример:

# Найти поды в проекте
oc get pods -n my-app-project

# Просмотреть логи одного из подов
oc logs my-app-deployment-65d8c7f9c8-2zxqk -n my-app-project

# Следить за логами в реальном времени
oc logs -f my-app-deployment-65d8c7f9c8-2zxqk -n my-app-project

Важно: Для доступа через oc необходимы соответствующие права RBAC в целевом проекте (namespace).