#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