Практично ли монтировать блочное хранилище на несколько VPS, на которых запущен Docker Swarm для общего хранилища?
Рассматривая несколько вариантов реализации общего хранилища для Docker Swarm, я вижу, что для большинства из них требуется специальный плагин Docker:
- sshFs
- CephFS
- glusterFS
- S3
- и другие
... но одна вещь, о которой нигде не упоминается, - это просто установка типичного блочного хранилища на все узлы VPS, на которых работает Docker Swarm. Этот вариант непрактичен и поэтому не упоминается в Интернете? Я что-то пропустил?
Моя идея такова:
- Создайте типичное блочное хранилище (например, предлагаемое DigitalOcean или Vultr).
- Смонтируйте его в файловую систему VPS.
- Смонтируйте папку из этого блочного хранилища как том в Docker Container / Docker Worker с помощью «локального» драйвера.
Для меня это звучит наиболее просто и очевидно. Почему люди используют более сложные настройки, такие как sshFs, CephFS и т. Д.? И самое главное, жизнеспособна ли описанная мною реализация, и если да, то каковы недостатки этого способа?
1 ответ
Основное преимущество использования подключаемого модуля тома над смонтированным хранилищем сводится к возможности динамически создавать тома хранилища и связывать их с пространствами имен.
то есть с докером, управляющим хранилищем для тома с помощью директивы «volume: data:» в файле compose, том будет создан для каждого развернутого именованного стека.
Используя локальный драйвер и средства монтирования, вы, администратор роя, должны убедиться, что никакие два стека не пытаются использовать
/mnt/data
.
Как только вы преодолеете это препятствие, некоторые платформы будут иметь ограничения на количество хостов, к которым может быть подключено блочное хранилище.
Также следует учитывать аспект безопасности - с таким сопоставленным томом компромисс с любой службой на любом хосте может потенциально раскрыть все ваши данные злоумышленнику, где плагин тома предоставит только те данные, которые смонтированы в этом контейнере.
Все, что сказано - docker swarm - это круто, а текущего места для плагинов не хватает - если для получения работоспособного решения для хранения требуется монтирование блочного хранилища, я говорю, сделайте это. Надеюсь, поддержка CSI будет готова до конца года.