я не могу видеть журнал sysout в модуле kubernetes

#kubernetes

#kubernetes

Вопрос:

Я использую logback для сохранения журнала в файл.

Однако, если я вхожу в модуль и вижу файл журнала, журнал с обратным входом записывается хорошо, но я не могу найти журнал с помощью sysout.

 kubectl exec -it pod-name bash
  

Кроме того, если я проверю журнал модуля kubernetes, я не смогу увидеть журнал, записанный в logback, но я могу проверить только журнал, записанный в sysout.

 kubectl logs -f pod-name
  

Кроме того, при совместном использовании logback и sysout в функции невозможно найти какой-либо журнал с использованием logback.

Вы знаете, как это исправить?

Ответ №1:

kubectl logs -f <pod_name> будут показаны только действия, которые влияют на POD, а не то, что на самом деле происходит внутри контейнера (любые вычисления, введенные данные в файл).

Без функции трудно сказать, что произойдет, однако хранение журналов внутри модуля — не лучшая идея. Если что-то случится с модулем, он выйдет из строя или возникнет какая-либо ошибка, Kubernetes перезапустит его, и все данные будут потеряны.

Правильный способ — записать ваше приложение в стандартный журнал, а затем использовать внешний инструмент для записи этого и записи в файл. Fluentd часто используется для этой цели с агрегацией, то есть ElasticSearch.

Я бы посоветовал вам взглянуть на архитектуру ведения журнала K8s и Elasticsearch