Я пытаюсь использовать fluentd для чтения файлов журналов pod kubernetes в кластере windows k8s (да, кластер windows version k8s).
Я обнаружил, что весь журнал модуля kubernetes находится в папке C:/var/log
на операционной системе хоста, поэтому я планирую смонтировать эту папку в контейнер fluentd, чтобы он мог читать его.
Поскольку я обнаружил, что все файлы в папке C:/var/log
являются файлами символьных ссылок, а настоящий целевой файл находится в папке C:\ProgramData\docker
, поэтому я монтирую обе папки в модуль, поскольку я думаю, что файлы символических ссылок нуждаются внацеливание файлов также.
Но я обнаружил, что fluentd может читать прочитанный файл (под C:\ProgramData\docker
), но не может читать через символьный файл под C:/var/log
.
Так что я удален на свой узел Windows и пытаюсьпроверьте, запустив:
$ docker run --rm -v c:/var/log:c:/var/log -v c:/ProgramData/docker:c:/ProgramData/docker -it mcr.microsoft.com/powershell powershell
И получил следующий результат:
PS C:\var\log\containers> type .\speller-col2-65679699c6-hjvhw_speller_speller-col2-ddd1788228d99678c04e85cc2438cb1646667ee0c751a9768b53da92df9f3103.log
type : The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached.
At line:1 char:1
+ type .\speller-col2-65679699c6-hjvhw_speller_speller-col2-ddd1788228d ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ReadError: (C:\var\log\cont...a92df9f3103.log:String) [Get-Content], IOException
+ FullyQualifiedErrorId : GetContentReaderIOError,Microsoft.PowerShell.Commands.GetContentCommand
Я пытаюсь прочитать реальный файл журнала (на который указывают эти файлы символических ссылок), и я могу получитьсодержание правильно.Но когда я пытаюсь читать через файлы символических ссылок, это не удается.Я считаю, что поэтому беглый не может работать так же хорошо.
Я пытаюсь Google, но я не нахожу никакой подсказки.Есть ли кто-нибудь, кто пытался сделать то же самое раньше, или кто-то, кто может поделиться какой-то идеей, которую я могу попробовать?