kubernetes: kubectl только передает определенное количество логов - PullRequest
0 голосов
/ 21 мая 2019

Я создал модуль, который производит несколько миллионов строк журнала.

Однако kubectl logs -f <pod_name> в какой-то момент останавливается и вывод останавливается.

Вот мой эксперимент:

kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file1
kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file2
kubectl logs --follow=true test-logs-job-13263-t5dbx | tee file3

Каждый из вышеуказанных процессов был прерван (Ctrl+C), как только я перестал получать какие-либо данные на моем экране.

Итак:

$ wc -l file*
  106701 file1
  106698 file2
  106698 file3
  320097 total

Стоит упомянутьтакже, что каждый из этих файлов содержит разные журналы, то есть фактические журналы, которые были переданы в потоковом режиме во время фактического выполнения команды kubectl logs -f.

Есть ли параметр, который ограничивает максимальное количество потоков, которые должны быть переданы в потоквышеуказанный номер?(~ 10700)

Мой кластер находится на GKE, что бы это ни значило.

edit : По какой-то причине это похоже на only на GKE;когда я запускаю тот же эксперимент на другом кластере k8s (katakoda), журналы передавались без каких-либо проблем.

1 Ответ

1 голос
/ 21 мая 2019

Kubernetes не обеспечивает сам протоколирование, но использует то, что обеспечивает механизм контейнера. Если вы работали без kubernetes при простой установке в Docker, по умолчанию в конфигурации Docker используется драйвер json-file и хранится 10 МБ журналов на контейнер. Смотри https://docs.docker.com/config/containers/logging/json-file/ Если вам нужно огромное количество журналов, рассмотрите возможность использования центральной инфраструктуры ведения журналов и настройте пересылку журналов. (Это также поддерживается Docker для нескольких бэкэндов регистрации, см. https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers)

Сообщается об ошибке, что ротация журналов может прервать потоковую передачу журналов kubectl --follow: https://github.com/kubernetes/kubernetes/issues/28369

...