как kubernetes справляется с блокировкой записи файлов в нескольких модулях, когда речь идет о томах hostpath - PullRequest
0 голосов
/ 28 августа 2018

У меня есть приложение, которое регистрирует файл my_log / 1.log, а затем я использую filebeat для сбора журналов из файла

Теперь я использую k8s, чтобы развернуть его на некоторых узлах, и использую тип хоста path Volumes для монтирования файла my_log в локальный файл syetem, / home / my_log, внезапно я обнаружил тонкую ситуацию:

что произойдет, если на этом компьютере будет развернуто более одного модуля, а затем они попытаются одновременно записать журнал?

Я знаю, что в обычной ситуации мультипроцессорная попытка записи в файл одновременно, система заблокирует файл, поэтому эти процессы могут записывать одну за другой, НО я не уверен, что k8s будет отличаться не разделяйте одно и то же пространство блокировки, если это так, это будет катастрофой Я пытаюсь проверить это, и, кажется, разные блоки будут по-прежнему совместно использовать блокировку файла, файл журнала кажется нормальным

1 Ответ

0 голосов
/ 29 августа 2018

как kubernetes работает с блокировщиком записи файлов в нескольких модулях, когда речь идет о томах hostpath

Это не так.

Операционная система и файловая система справляются с этим. В качестве примера возьмем syslog. Он обрабатывает его, открывая сокет, устанавливая сокет в режим сервера, открывая файл журнала в режиме записи, получая уведомления о пакетах, анализируя сообщение и, наконец, записывая его в файл.

Журналы также могут быть кэшированы, и процесс может быть ограничен 1 потоком, поэтому вам не нужно иметь много модулей, записывающих в один файл. Это может привести к таким проблемам, как отсутствие журналов или обрезка строк.

Ваше приложение должно обрабатывать блокировку файлов для проталкивания журналов, также, если вы хотите, чтобы множество модулей записывали журналы, у вас должен быть отдельный файл журнала для каждого модуля.

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