Выбор ответа Junior Логи: Loki и ELK обновлено

Как логи из контейнеров попадают в хранилище

Вопрос

Как обычно доставляют логи приложений из Kubernetes в Loki или Elasticsearch?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: В stdout, агент-DaemonSet на узле читает и отправляет. Агент-DaemonSet читает /var/log/pods, добавляет метки пода и namespace, буферизует при недоступности хранилища и отправляет.

Варианты ответа

  1. Каждый под сам подключается к Elasticsearch по HTTP и пишет батчами
  2. В stdout, агент-DaemonSet на узле читает и отправляетправильный ответ
  3. Kubernetes хранит все логи в etcd, откуда их забирает хранилище
  4. Логи копируются по расписанию через kubectl logs в CronJob

Разбор

Агент-DaemonSet читает /var/log/pods, добавляет метки пода и namespace, буферизует при недоступности хранилища и отправляет. Прямая отправка из приложения усложняет код и теряет логи при сбоях сети. etcd хранит объекты API, а не логи, kubectl logs для отладки, а не для доставки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.