Kubernetes: объем в памяти, разделяемый между модулями - PullRequest
1 голос
/ 11 марта 2019

Мне нужен общий том, доступный из нескольких модулей для кэширования файлов в ОЗУ на каждом узле.

Проблема в том, что поставщик томов emptyDir (который поддерживает Memory в качестве medium)доступно в спецификации Volume, но не в спецификации PersistentVolume.

Есть ли способ достичь этого, кроме создания вручную тома tmpfs на каждом хосте и монтирования его с помощью local или hostPath инициатор в спецификации PV?

Обратите внимание, что сам Docker поддерживает такие тома:

docker volume create --driver local --opt type=tmpfs --opt device=tmpfs \
       --opt o=size=100m,uid=1000 foo

Я не вижу причин, почему k8s этого не делает.Или может быть, но это не очевидно?

Я пытался играть с local и hostPath PV с mountOptions, но это не сработало.

1 Ответ

1 голос
/ 14 марта 2019

EmtpyDir привязан к времени жизни модуля, поэтому его нельзя использовать через общий доступ к нескольким модулям.То, что вы запрашиваете, - это дополнительная функция, и если вы посмотрите ниже обсуждения github, вы увидите, что вы не первый, кто запрашивает эту функцию.

рассмотрите класс хранения tmpfs

Также в соответствии с вашим упоминанием, что docker supports this tmpfs volume, да, он поддерживает, но вы не можете разделить этот объем между контейнерами.Из Документация

Ограничения монтирования tmpfs:

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

...