Я пытаюсь отладить, почему мои журналы приложений не собираются Promtail для передачи в Loki.
Чтобы исключить сложность ведения журнала моего PHP-приложения, являющегося виновником, я просто пытаюсь распечатать сообщение в stderr
поток из корпуса капсулы, который может поднять kubectl logs counter
. Чтобы еще больше уменьшить сложность, я создал новый модуль, используя php:fpm-alpine
изображение, используя конфигурацию ниже:
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: php:fpm-alpine
Когда модуль готов, я получаю доступ к оболочке, запустив kubectl exec -it counter -- /bin/ash
а затем запустить i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done
. Я вижу следующий вывод в оболочке модуля:
0: Sun May 24 13:51:09 UTC 2020
1: Sun May 24 13:51:10 UTC 2020
2: Sun May 24 13:51:11 UTC 2020
3: Sun May 24 13:51:12 UTC 2020
4: Sun May 24 13:51:13 UTC 2020
etc...
Однако когда я бегу kubectl logs counter
возвращенные данные:
[24-May-2020 13:36:20] NOTICE: fpm is running, pid 1
[24-May-2020 13:36:20] NOTICE: ready to handle connections
Кажется, я не могу получить результат i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done
команда для отображения в журналах модуля.
Похоже, это связано с тем, что изображение позволяет catch_workers_output = yes
В будущем было бы отличным механизмом устранения неполадок попытаться запустить тот же образ локально и посмотреть, сможете ли вы создать минимальное воспроизведение для себя: то есть можете любой php-скрипт, запущенный в этом контейнере, выдает вывод на stderr контейнера?