Docker Проблема с настройками обновления Big Log Rollout - PullRequest
1 голос
/ 06 мая 2020

У меня проблема с настройкой журнала docker, и мне интересно, может ли кто-нибудь мне помочь. my docker генерирует много журналов, поэтому я установил для него скользящее обновление, настройки следующие:

  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-file": "10",
    "max-size": "100m"
  },

Таким образом, его сборник журналов будет следующим: enter image description here

, и когда я использую kubectl logs, он читает только последний файл, что означает, что в какой-то момент, когда файл журнала составляет всего 100 МБ, последний файл будет пуст. Интересно, есть ли у меня способ каждый раз читать последний 100-мегабайтный журнал, а не последний файл. Или как его настроить? Docker может поместить последний 100-метровый журнал в последний файл.

Большое спасибо ~

1 Ответ

2 голосов
/ 06 мая 2020

Согласно документации K8S то, что вы описываете, является стандартным поведением и не может быть изменено:

Ведение журнала на уровне узла

Примечание: в настоящее время , если какая-то внешняя система выполнила ротацию, через журналы kubectl будет доступно только содержимое последнего файла журнала. Например, если есть файл размером 10 МБ, logrotate выполняет ротацию и есть два файла, один размером 10 МБ и один пустой, журналы kubectl вернут пустой ответ.

Я рекомендую ввести агрегирование журналов в ваш кластер с набором демонов, например Fluentd с ElasticSearch и Kibana .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...