Привет!
Kubernetes сам по себе не собирает информацию о том, что происходит внутри pods. Для того, чтобы повысить observability и иметь удобный инструмент для поиска проблем необходимо самостоятельно настроить логирование событий и их последующую обработку.
Сделать это можно несколькими способами:
🍭 Установка Logging Agent на Node. Как правило, он ставится в качестве DaemonSet. Настраивается mount для pod/logging agent в директорию на node, куда попадают logs. Далее агент направляет их в соответствующий backend для обработки. Примером такого agent может быть FluentD, backend – ElasticSearch
🍭 Использование Sidecar Logging Agent. Иногда pod может писать logs только в определенные файлы. Как раз тут и может потребоваться sidecar – он перенаправляет данные из указанного файла в stdout/stderr. Далее схема ничем не отличается от вышеописанного варианта
🍭 Sidecar Logging Backend. Нечто среднее между описанными вариантами: установка agent на node не требуется, логи направляются в logging backend силами sidecar logging agent
Единственно правильного ответа на вопрос – «А какой вариант лучше?» - не существует. Все будет зависеть от приложения и от политик обработки логов отдельно взятой Компании. Бывают случаи, когда Компании используют сразу несколько из вышеописанных подходов
Post #384
841