#kubernetes
#kubernetes
Вопрос:
У меня есть кластер kubernetes из 1 главного и 1 рабочего. Я развернул 1 приложение nodejs и подключил каталог /home/user_name/data
, используя hostPath
тип тома, к pod. Тип, который я установил Directory
для тома.
Приложение nodejs работает отлично, записывает данные и возвращает сохраненные данные без каких-либо ошибок.
Первоначально я также протестировал, удалив data
папку и попытавшись применить развертывание, и я получил сообщение об ошибке, поскольку тип тома Directory
. Таким образом, похоже, что монтирование правильно указывает на каталог в рабочем узле. Но когда я пытаюсь просмотреть файл, который должен быть создан приложением nodejs, я не вижу ни одного файла в каталоге хоста.
Я также проверил, запущен ли модуль на рабочем узле, и он работает только на рабочем узле.
Мое понимание hostPath
типа тома заключается в том, что он похож на bindMount
тип тома docker.
Я понятия не имею, почему я не могу видеть файл, который приложение nodejs создает и работает отлично. Любая помощь будет оценена.
Комментарии:
1. Вероятно, вам не следует использовать
hostPath
каталоги для обычного хранения приложений; вы не можете гарантировать, что модуль всегда будет находиться на одном и том же узле или что в одном и том же месте не будет запущено несколько модулей из одного и того же развертывания. Выберите один из других типов томов.2. пожалуйста, добавьте volumes amp; volumeMounts в ваш файл yaml, чтобы получить больше ясности
3. @DavidMaze, да, вы правы. На самом деле я пытался прояснить свое понимание пути к хосту, поскольку мы используем небольшие временные кэши в нашем приложении, поэтому я подумал, можем ли мы использовать
hostPath
.4. Вероятно, вам следует использовать его только в том случае
hostPath
, если вы запускаете что-то вроде сборщика журналов в качестве набора демонов, где модуль будет запускаться на каждом узле, и вы знаете, что один и тот же путь к файловой системе будет существовать на каждом узле с интересным содержимым. Это не то, что вы должны использовать обычно.