Я запускаю приложение Laravel в Kubernetes, и в настоящее время у меня есть требование смонтировать папку хранилища / журнала из нескольких модулей, где все модули будут записывать в один и тот же файл laravel.log
. Чтобы добиться этого, я использовал AWS EFS с EFS-Provisioner для Kubernetes для монтирования хранилища.
При устранении проблем с журналированием из моего приложения я заметил, что когда я регистрирую запись в laravel.log
файл из Pod A / B, он отображается в обоих Pod A / B, когда я подключаю журнал, однако он не отображается в Pod C. Если я войду из Pod C, он будет отображаться только в Pod C. Я работаю внутри контейнера, используя, например, php artisan tinker
и Log::error('php-fpm');
, а также tail -f /var/www/api/storage/logs/laravel.log
. Такое же поведение происходит, если я echo "php-fpm" >> /var/www/api/storage/logs/laravel.log
.
Сначала я подумал, что, возможно, монтирую неправильное хранилище, однако, если я touch test
в папке, я вижу его через Pod A, B, C. Я также вижу другие файлы журналов, созданные с одинаковыми временными метками.
Есть идеи, как это исправить?
Редактировать: Я заметил, что под A, B которые оба видят записи журнала друг друга, находятся в одном и том же AZ. Pod C (и другой Pod D, работающий Nginx) работают в другом AZ. Я просто хочу обрисовать это, но я чувствую, что это действительно не должно иметь значения. Это должно быть одно и то же хранилище независимо от того, откуда вы подключаетесь.